From 6cc12ae00d6b562be8d272602c7820e2d1579666 Mon Sep 17 00:00:00 2001 From: lshwy817 <lshwy817@163.com> Date: Mon, 28 Nov 2022 13:05:16 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebSite/src/api/first.js | 2 +- WebSite/src/api/projectLibrary.js | 2 +- .../yo-common/ProjectFundApply/index.vue | 112 +++++++++++++----- .../SecondPeopleFundApply/components/List.vue | 2 +- 4 files changed, 87 insertions(+), 31 deletions(-) diff --git a/WebSite/src/api/first.js b/WebSite/src/api/first.js index 54571f95..f63856e4 100644 --- a/WebSite/src/api/first.js +++ b/WebSite/src/api/first.js @@ -116,7 +116,7 @@ export default { }, //鎾ゅ洖椤圭洰鐢虫姤涔� cancel(data) { - return request.post('/projectPlan/reCallProjectPlan', data); + return request.post('/projectPlan/reCallProjectPlan?id=' + data); }, submitIncome(data) { diff --git a/WebSite/src/api/projectLibrary.js b/WebSite/src/api/projectLibrary.js index cd2279f6..fc1a26a1 100644 --- a/WebSite/src/api/projectLibrary.js +++ b/WebSite/src/api/projectLibrary.js @@ -317,7 +317,7 @@ class ProjectLibrary extends Base { return request.post('/projectLibrary/enterPublicProjectPlan', data); } static enterPersonProjectPlan(data) { - return request.post('/projectLibrary/enterPersonProjectPlan', data); + return request.post('/projectLibrary/enterPersonProjectPlan?year=' + data, ); } // 鑾峰彇瀛愮骇鑿滃崟 static listChildrenMenu(id) { diff --git a/WebSite/src/views/yo-common/ProjectFundApply/index.vue b/WebSite/src/views/yo-common/ProjectFundApply/index.vue index d6d44f7b..01011ae3 100644 --- a/WebSite/src/views/yo-common/ProjectFundApply/index.vue +++ b/WebSite/src/views/yo-common/ProjectFundApply/index.vue @@ -938,8 +938,21 @@ <el-form-item prop="projectTargetCmd.subOtherArrayJson.three" class="newForms" - ><el-input v-model="scope.row.three"></el-input - ></el-form-item> + > + <!-- <el-input v-model="scope.row.three"></el-input> --> + <el-select + v-model="scope.row.three" + @change="threeChange(scope.row)" + :disabled="!scope.row.three" + > + <el-option + v-for="(item, index) in scope.row.threeList" + :key="index" + :label="item.targetName" + :value="item.targetName" + /> + </el-select> + </el-form-item> </template> </el-table-column> <el-table-column label="瀹炴柦鍛ㄦ湡鎸囨爣鍊�"> @@ -1019,6 +1032,7 @@ </el-card> <el-card class="mt-20" :id="'opinion' + uid"> <template #header> 瀹℃牳鎰忚</template> + <!-- {{ applyInfo.flowCanShowOut }} --> <!-- <el-form> --> <el-form-item label="缁╂晥瀹℃牳鎰忚" @@ -1057,8 +1071,12 @@ <el-form-item label="鍒嗙鏍¢瀵煎鏍告剰瑙�" prop="" - v-if="route == '/i/project-library/declaretwo'" - label-width="200px" + v-if=" + route == '/i/project-library/declaretwo' || + route == '/i/approval/project/SchoolLeaderApproval' || + route == '/i/project-library/department' || + route == '/i/project-library/inSchool' + " > <el-input v-model="applyInfo.summary.leaderOpinion" @@ -1075,8 +1093,12 @@ <el-form-item label="鍙戝睍瑙勫垝澶勫鏍告剰瑙�" prop="" - v-if="route == '/i/project-library/declaretwo'" - label-width="200px" + v-if=" + route == '/i/project-library/declaretwo' || + route == '/i/approval/project/RegulatoryApproval' || + route == '/i/project-library/department' || + route == '/i/project-library/inSchool' + " > <el-input v-model="applyInfo.summary.devPlanOpinion" @@ -1093,8 +1115,14 @@ <el-form-item label="璐㈠姟澶勫鏍告剰瑙�" prop="" - v-if="route == '/i/project-library/declaretwo'" - label-width="200px" + v-if=" + route == '/i/project-library/declaretwo' || + route == '/i/project-library/department' || + route == '/i/project-library/inSchool' || + route == '/i/approval/project/FinanceApproval' || + route == '/i/approval/public/FinanceApproval' || + route == '/i/approval/people/FinanceApproval' + " > <el-input v-model="applyInfo.summary.financialOpinion" @@ -2105,11 +2133,25 @@ export default { // }); }; const onClickNode = (scope, node) => { - // scope.row.one = data.parent; - // scope.row.oneValue = data.parent; - // scope.row.twoValue = node.value; - scope.row.one = node.label; + console.log('11fds', scope, node); + scope.row.one = node.text; scope.row.two = node.label; + if (node.level == 4) { + scope.row.threeList = node.parent.children; + scope.row.threeList = node.parent.children.map(item => { + return { + targetName: item.value + }; + }); + scope.row.three = node.label; + scope.row.two = node.data.parentName; + } else { + // scope.row.threeList = []; + scope.row.three = ''; + } + }; + const threeChange = row => { + row.one = row.three; }; const getMeritsTree = async id => { const res = await Api.queryProjectTargetTree({ @@ -2118,22 +2160,36 @@ export default { }); meritsData.meritsTree = res.data; if (!data.applyInfo.id) { - setList(meritsData.meritsTree); + let sum = 0; + setList(meritsData.meritsTree, sum); } }; - const setList = array => { - array.forEach(v => { - if (v.children) { - setList(v.children); - } else { - data.applyInfo.projectTargetCmd.subOtherArrayJson.push({ - one: v.targetName, - two: v.targetName, - three: '', - yearTarget: '' - }); - } - }); + const setList = (array, sum) => { + if (sum <= 2) { + sum++; + array.forEach(v => { + if (v.children) { + setList(v.children, sum); + } + if (v.children && sum == 3) { + data.applyInfo.projectTargetCmd.subOtherArrayJson.push({ + one: v.children[0].targetName, + two: v.targetName, + three: v.children[0].targetName, + threeList: v.children, + yearTarget: '' + }); + } else if (!v.children && sum == 3) { + data.applyInfo.projectTargetCmd.subOtherArrayJson.push({ + one: v.targetName, + two: v.targetName, + three: '', + threeList: [], + yearTarget: '' + }); + } + }); + } }; //椤圭洰棰勭畻閫昏緫浠g爜 const budgetData = reactive({ @@ -2566,7 +2622,6 @@ export default { name: applyInfo.departmentName }); } - data.applyInfo = applyInfo; } else { data.applyInfo = { @@ -2838,7 +2893,8 @@ export default { seeView, handleCloses, onNewClear, - navToPrint + navToPrint, + threeChange }; } }; 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 e9ee72f7..08c31032 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 @@ -94,7 +94,7 @@ export default { primaryKey: 'id' }); const connet = () => { - ProjectLibrary.enterPersonProjectPlan({}).then(res => { + ProjectLibrary.enterPersonProjectPlan(window.sessionStorage.getItem('year')).then(res => { console.log(res); getPersonList(); }); -- GitLab From 3d4ae4ad02859f6dd8fa80ec10708afa4e1f1a3b Mon Sep 17 00:00:00 2001 From: lshwy817 <lshwy817@163.com> Date: Mon, 28 Nov 2022 16:36:28 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebSite/src/api/projectLibrary.js | 19 ++++ WebSite/src/assets/liucheng1.png | Bin 0 -> 30416 bytes WebSite/src/components/Flow/index.vue | 13 ++- WebSite/src/router/modules/base.js | 5 ++ .../views/main/basicSetting/match/index.vue | 84 ++++++++++++++++++ 5 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 WebSite/src/assets/liucheng1.png create mode 100644 WebSite/src/views/main/basicSetting/match/index.vue diff --git a/WebSite/src/api/projectLibrary.js b/WebSite/src/api/projectLibrary.js index fc1a26a1..892d22e9 100644 --- a/WebSite/src/api/projectLibrary.js +++ b/WebSite/src/api/projectLibrary.js @@ -1041,5 +1041,24 @@ class ProjectLibrary extends Base { static enterPiFuAllProjectPlan(data) { return request.post( `/projectLibrary/enterPiFuAllProjectPlan`, data) } + /** + * -----------------棰勬嫧鍖归厤---------------- + */ + // 鑾峰彇鎸囨爣妯℃澘鍒楄〃 + static listBusinessTemplate(data) { + return request.post(`/fundTemplateLimit/listBusinessTemplate`, data); + } + // 鏍规嵁褰撳墠骞翠唤鏌ヨ缁忔祹绉戠洰淇℃伅 + static queryFundByYear(data) { + return request.post(`/fundTemplateLimit/queryFundByYear`, data); + } + // 閫氳繃妯℃澘缂栧彿鏌ラ搴︿俊鎭� + static queryLimitByTemplateCode(data) { + return request.post(`/fundTemplateLimit/queryLimitByTemplateCode`, data); + } + // 淇濆瓨缁忔祹绉戠洰妯℃澘淇℃伅 + static saveFundTemplate(data) { + return request.post(`/fundTemplateLimit/saveFundTemplate`, data); + } } export default ProjectLibrary; diff --git a/WebSite/src/assets/liucheng1.png b/WebSite/src/assets/liucheng1.png new file mode 100644 index 0000000000000000000000000000000000000000..3f63e7d79bb0d656fdbbb897f0aa86257425f835 GIT binary patch literal 30416 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 aE(>tcnTkh_dn+REJ#$j)#0Qm2e*X`<vplr` literal 0 HcmV?d00001 diff --git a/WebSite/src/components/Flow/index.vue b/WebSite/src/components/Flow/index.vue index 7eb8e705..15c0599c 100644 --- a/WebSite/src/components/Flow/index.vue +++ b/WebSite/src/components/Flow/index.vue @@ -58,6 +58,12 @@ >鍘嗗彶</el-button > </div> + <el-dialog v-model="dialogVisible" width="70%"> + <img + src="@/assets/liucheng1.png" + style="width: 90%" + /> + </el-dialog> <Submit v-if="dialogSubmit.visible" v-model:visible="dialogSubmit.visible" @@ -114,7 +120,8 @@ export default { }, dialogHistory: { visible: false - } + }, + dialogVisible: false }); const handleBack = () => { cxt.emit('handleBack'); @@ -137,7 +144,9 @@ export default { const handleCancel = () => { cxt.emit('handleCancel'); }; - const handleChart = () => {}; + const handleChart = () => { + state.dialogVisible = true; + }; const handleOpenHistoryDialog = () => { console.log('鐐瑰嚮浜�'); state.dialogHistory.visible = true; diff --git a/WebSite/src/router/modules/base.js b/WebSite/src/router/modules/base.js index 34d2d04c..6174f935 100644 --- a/WebSite/src/router/modules/base.js +++ b/WebSite/src/router/modules/base.js @@ -38,6 +38,11 @@ const routes = [ path: 'basicSetting/personnelExpenses', component: () => import('@/views/main/basicSetting/personnelExpenses'), name: 'PersonnelExpenses' + }, + { + path: 'basicSetting/match', + component: () => import('@/views/main/basicSetting/match'), + name: 'Match' } ]; diff --git a/WebSite/src/views/main/basicSetting/match/index.vue b/WebSite/src/views/main/basicSetting/match/index.vue new file mode 100644 index 00000000..a022437d --- /dev/null +++ b/WebSite/src/views/main/basicSetting/match/index.vue @@ -0,0 +1,84 @@ +<template> + <div> + <el-card class="mtop20"> + <el-table + stripe + :data="tableData" + style="width: 100%" + ref="multipleTable" + class="mtop20" + fit + > + <el-table-column label="妯℃澘缂栧彿" prop="templateCode" /> + <el-table-column label="妯℃澘鍚嶇О" prop="templateName" /> + <el-table-column label="鐘舵€�" prop="state" /> + <el-table-column label="鎿嶄綔"> + <template #default="scope"> + <el-button type="text" @click="onEdit(scope.row)"> + 缂栬緫 + </el-button> + </template> + </el-table-column> + </el-table> + <Pagination + v-show="total > 0" + :total="total" + v-model:page="checkInfo.pageIndex" + v-model:limit="checkInfo.pageSize" + @pagination="queryList" + /> + </el-card> + </div> + </template> + + <script> + import { reactive, toRefs, onMounted } from 'vue'; + import ProjectLibrary from '@/api/projectLibrary'; + export default { + setup() { + onMounted(() => { + queryList(); + queryDeptPage(); + }); + const state = reactive({ + deptList: [], + checkInfo: { + pageIndex: 1, + pageSize: 10 + }, + total: 0, + tableData: [], + bumenList: [], + changelist: [] + }); + const queryList = () => { + ProjectLibrary.listBusinessTemplate().then(res => { + state.tableData = res.data; + state.total = res.total; + }); + }; + const queryDeptPage = () => { + // ProjectLibrary.queryDeptPage({ + // pageIndex: 1, + // pageSize: 999 + // }).then((res) => { + // state.bumenList = res.data; + // queryList() + // }) + } + const onEdit = (row) => { + console.log('orw', row); + } + + return { + ...toRefs(state), + queryList, + queryDeptPage, + onEdit + }; + } + }; + </script> + + <style></style> + \ No newline at end of file -- GitLab From d8ac619c423ff403d67032ddfa129e5486a47104 Mon Sep 17 00:00:00 2001 From: lshwy817 <lshwy817@163.com> Date: Tue, 29 Nov 2022 13:49:12 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/main/basicSetting/match/index.vue | 207 +++++++++++------- .../yo-common/ProjectFundApply/index.vue | 2 +- 2 files changed, 127 insertions(+), 82 deletions(-) diff --git a/WebSite/src/views/main/basicSetting/match/index.vue b/WebSite/src/views/main/basicSetting/match/index.vue index a022437d..80555085 100644 --- a/WebSite/src/views/main/basicSetting/match/index.vue +++ b/WebSite/src/views/main/basicSetting/match/index.vue @@ -1,84 +1,129 @@ <template> - <div> - <el-card class="mtop20"> - <el-table - stripe - :data="tableData" - style="width: 100%" - ref="multipleTable" - class="mtop20" - fit - > - <el-table-column label="妯℃澘缂栧彿" prop="templateCode" /> - <el-table-column label="妯℃澘鍚嶇О" prop="templateName" /> - <el-table-column label="鐘舵€�" prop="state" /> - <el-table-column label="鎿嶄綔"> - <template #default="scope"> - <el-button type="text" @click="onEdit(scope.row)"> - 缂栬緫 - </el-button> - </template> - </el-table-column> - </el-table> - <Pagination - v-show="total > 0" - :total="total" - v-model:page="checkInfo.pageIndex" - v-model:limit="checkInfo.pageSize" - @pagination="queryList" - /> - </el-card> - </div> - </template> - - <script> - import { reactive, toRefs, onMounted } from 'vue'; - import ProjectLibrary from '@/api/projectLibrary'; - export default { - setup() { - onMounted(() => { - queryList(); - queryDeptPage(); + <div> + <el-card class="mtop20"> + <el-table + stripe + :data="tableData" + style="width: 100%" + ref="multipleTable" + class="mtop20" + fit + > + <el-table-column label="妯℃澘缂栧彿" prop="templateCode" /> + <el-table-column label="妯℃澘鍚嶇О" prop="templateName" /> + <el-table-column label="鐘舵€�" prop="state" /> + <el-table-column label="鎿嶄綔"> + <template #default="scope"> + <el-button type="text" @click="onEdit(scope.row)"> + 缂栬緫 + </el-button> + </template> + </el-table-column> + </el-table> + <Pagination + v-show="total > 0" + :total="total" + v-model:page="checkInfo.pageIndex" + v-model:limit="checkInfo.pageSize" + @pagination="queryList" + /> + </el-card> + <el-dialog v-model="dialogVisible" width="80%" :before-close="handleClose"> + <el-row :gutter="20" class="newRow"> + <el-col :span="6">妯℃澘缂栧彿锛�</el-col> + <el-col :span="6">妯℃澘鍚嶇О锛�</el-col> + </el-row> + <el-table :data="gridData"> + <el-table-column label="缁忔祹绉戠洰缂栧彿" prop="fundCode" /> + <el-table-column label="缁忔祹绉戠洰鍚嶇О" prop="fundName" /> + <el-table-column label="棰濆害缂栧彿/鍚嶇О"> + <el-select> + <el-option label="Zone No.1" value="shanghai" /> + </el-select> + </el-table-column> + </el-table> + <template #footer> + <span class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙栨秷</el-button> + <el-button type="primary" @click="onSure"> + 纭 + </el-button> + </span> + </template> + </el-dialog> + </div> +</template> + +<script> +import { reactive, toRefs, onMounted } from 'vue'; +import ProjectLibrary from '@/api/projectLibrary'; +import { ElMessage } from 'element-plus'; +export default { + setup() { + onMounted(() => { + queryList(); + queryDeptPage(); + }); + const state = reactive({ + deptList: [], + checkInfo: { + pageIndex: 1, + pageSize: 10 + }, + total: 0, + tableData: [], + gridData: [], + dialogVisible: false, + selectList: [] + }); + const queryList = () => { + ProjectLibrary.listBusinessTemplate().then(res => { + state.tableData = res.data; + state.total = res.total; }); - const state = reactive({ - deptList: [], - checkInfo: { - pageIndex: 1, - pageSize: 10 - }, - total: 0, - tableData: [], - bumenList: [], - changelist: [] - }); - const queryList = () => { - ProjectLibrary.listBusinessTemplate().then(res => { - state.tableData = res.data; - state.total = res.total; - }); - }; - const queryDeptPage = () => { - // ProjectLibrary.queryDeptPage({ - // pageIndex: 1, - // pageSize: 999 - // }).then((res) => { - // state.bumenList = res.data; - // queryList() - // }) - } - const onEdit = (row) => { - console.log('orw', row); - } - - return { - ...toRefs(state), - queryList, - queryDeptPage, - onEdit - }; + }; + const queryDeptPage = () => { + // ProjectLibrary.queryDeptPage({ + // pageIndex: 1, + // pageSize: 999 + // }).then((res) => { + // state.bumenList = res.data; + // year: sessionStorage.getItem('year') + // queryList() + // }) + }; + const onEdit = row => { + console.log('orw', row); + state.dialogVisible = true; + ProjectLibrary.queryFundByYear({ templateCode: row.templateCode }).then( + res => { + state.gridData = res.data; + } + ); + ProjectLibrary.queryLimitByTemplateCode({templateCode: row.templateCode}).then((res) => { + state.selectList = res.data + }) + }; + const onSure = () => { + state.dialogVisible = false; + ProjectLibrary.saveFundTemplate().then((res) => { + console.log('res', res); + ElMessage.success('淇濆瓨鎴愬姛'); + }) } - }; - </script> - - <style></style> - \ No newline at end of file + return { + ...toRefs(state), + queryList, + queryDeptPage, + onEdit, + onSure + }; + } +}; +</script> + +<style scoped> +.newRow { + margin: 10px 0; +} +</style> diff --git a/WebSite/src/views/yo-common/ProjectFundApply/index.vue b/WebSite/src/views/yo-common/ProjectFundApply/index.vue index 01011ae3..ca38b695 100644 --- a/WebSite/src/views/yo-common/ProjectFundApply/index.vue +++ b/WebSite/src/views/yo-common/ProjectFundApply/index.vue @@ -1129,7 +1129,7 @@ :readonly=" Boolean( applyInfo.flowCanShowOut && - applyInfo.flowCanShowOut.state != '璐㈠姟澶勫鎵�' + applyInfo.flowCanShowOut.state != '璧勯噾鍒嗛厤' ) " type="textarea" -- GitLab From bb733cace1bcc053f7a7c08999364eb639d095de Mon Sep 17 00:00:00 2001 From: lshwy817 <lshwy817@163.com> Date: Wed, 30 Nov 2022 16:12:34 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebSite/src/api/projectLibrary.js | 4 +- .../views/main/basicSetting/match/index.vue | 103 ++++++++++++------ .../projectLibrary/components/Detail.vue | 8 +- .../department/components/List.vue | 12 +- .../inSchool/components/List.vue | 4 +- .../src/views/performance/declarationview.vue | 6 +- .../performance/declarationwatchview.vue | 6 +- .../src/views/performance/evaluationview.vue | 5 + .../views/performance/evaluationwatchview.vue | 5 + .../views/performance/rectificationview.vue | 5 + .../performance/rectificationwatchview.vue | 5 + .../yo-common/ProjectFundApply/index.vue | 2 +- .../views/yo-common/PublicFundApply/index.vue | 1 + 13 files changed, 118 insertions(+), 48 deletions(-) diff --git a/WebSite/src/api/projectLibrary.js b/WebSite/src/api/projectLibrary.js index 892d22e9..3d7019e2 100644 --- a/WebSite/src/api/projectLibrary.js +++ b/WebSite/src/api/projectLibrary.js @@ -1050,11 +1050,11 @@ class ProjectLibrary extends Base { } // 鏍规嵁褰撳墠骞翠唤鏌ヨ缁忔祹绉戠洰淇℃伅 static queryFundByYear(data) { - return request.post(`/fundTemplateLimit/queryFundByYear`, data); + return request.post(`/fundTemplateLimit/queryFundByYear?templateCode=`+ data); } // 閫氳繃妯℃澘缂栧彿鏌ラ搴︿俊鎭� static queryLimitByTemplateCode(data) { - return request.post(`/fundTemplateLimit/queryLimitByTemplateCode`, data); + return request.post(`/fundTemplateLimit/queryLimitByTemplateCode?templateCode=`+ data); } // 淇濆瓨缁忔祹绉戠洰妯℃澘淇℃伅 static saveFundTemplate(data) { diff --git a/WebSite/src/views/main/basicSetting/match/index.vue b/WebSite/src/views/main/basicSetting/match/index.vue index 80555085..3f402614 100644 --- a/WebSite/src/views/main/basicSetting/match/index.vue +++ b/WebSite/src/views/main/basicSetting/match/index.vue @@ -1,5 +1,19 @@ <template> <div> + <el-card class="mtop20"> + <el-row :gutter="20"> + <el-col :span="6"> + <el-input v-model="Search.templateCode" placeholder="璇疯緭鍏ユā鏉跨紪鍙�" clearable @clear="queryList" /> + </el-col> + <el-col :span="6"> + <el-input v-model="Search.templateName" placeholder="璇疯緭鍏ユā鏉垮悕绉�" clearable @clear="queryList" /> + </el-col> + <el-col :span="6"> + <el-button type="primary" plain @click="queryList">鏌ヨ</el-button> + </el-col> + </el-row> + + </el-card> <el-card class="mtop20"> <el-table stripe @@ -20,34 +34,41 @@ </template> </el-table-column> </el-table> - <Pagination + <!-- <Pagination v-show="total > 0" :total="total" v-model:page="checkInfo.pageIndex" v-model:limit="checkInfo.pageSize" @pagination="queryList" - /> + /> --> </el-card> <el-dialog v-model="dialogVisible" width="80%" :before-close="handleClose"> <el-row :gutter="20" class="newRow"> - <el-col :span="6">妯℃澘缂栧彿锛�</el-col> - <el-col :span="6">妯℃澘鍚嶇О锛�</el-col> + <el-col :span="6"> + <h4>妯℃澘缂栧彿锛歿{ titleText.templateCode }}</h4> + </el-col> + <el-col :span="6"> + <h4>妯℃澘鍚嶇О锛歿{ titleText.templateName }}</h4> + </el-col> </el-row> <el-table :data="gridData"> <el-table-column label="缁忔祹绉戠洰缂栧彿" prop="fundCode" /> <el-table-column label="缁忔祹绉戠洰鍚嶇О" prop="fundName" /> <el-table-column label="棰濆害缂栧彿/鍚嶇О"> - <el-select> - <el-option label="Zone No.1" value="shanghai" /> - </el-select> + <template #default="scope"> + <!-- {{scope.row}} --> + <el-select v-model="scope.row.limitCode" clearable @change="selectChange(scope.row)"> + <el-option v-for="(item, index) in selectList" :label="item.controlsName" :value="item.controlsCode" :key="index"/> + </el-select> + </template> </el-table-column> </el-table> <template #footer> <span class="dialog-footer"> - <el-button @click="dialogVisible = false">鍙栨秷</el-button> - <el-button type="primary" @click="onSure"> + <el-button @click="dialogVisible = false">鍏抽棴</el-button> + <!-- <el-button type="primary" @click="onSure"> 纭 - </el-button> + </el-button> --> </span> </template> </el-dialog> @@ -62,10 +83,8 @@ export default { setup() { onMounted(() => { queryList(); - queryDeptPage(); }); const state = reactive({ - deptList: [], checkInfo: { pageIndex: 1, pageSize: 10 @@ -74,48 +93,66 @@ export default { tableData: [], gridData: [], dialogVisible: false, - selectList: [] + selectList: [], + fundTemplateCmdList: [], + titleText: {}, + Search: { + templateCode: '', + templateName: '', + } }); const queryList = () => { - ProjectLibrary.listBusinessTemplate().then(res => { + let newData = {}; + if(state.Search.templateCode != '' || state.Search.templateName != '') { + newData = { + time: new Date(), + ...state.Search + } + } else { + newData.time = new Date() + } + ProjectLibrary.listBusinessTemplate(newData).then(res => { state.tableData = res.data; state.total = res.total; }); }; - const queryDeptPage = () => { - // ProjectLibrary.queryDeptPage({ - // pageIndex: 1, - // pageSize: 999 - // }).then((res) => { - // state.bumenList = res.data; - // year: sessionStorage.getItem('year') - // queryList() - // }) - }; const onEdit = row => { - console.log('orw', row); + state.titleText = row; state.dialogVisible = true; - ProjectLibrary.queryFundByYear({ templateCode: row.templateCode }).then( + ProjectLibrary.queryFundByYear( row.templateCode ).then( res => { state.gridData = res.data; } ); - ProjectLibrary.queryLimitByTemplateCode({templateCode: row.templateCode}).then((res) => { + ProjectLibrary.queryLimitByTemplateCode( row.templateCode ).then((res) => { state.selectList = res.data }) }; - const onSure = () => { - state.dialogVisible = false; - ProjectLibrary.saveFundTemplate().then((res) => { - console.log('res', res); + const selectChange = (val) => { + let newList = state.selectList.find(item => { + if (item.controlsCode == val.limitCode) { + return item + } + }) + state.fundTemplateCmdList.push({ + limitName: newList.controlsName, + templateCode: state.titleText.templateCode, + templateName: state.titleText.templateName, + ...val + }) + ProjectLibrary.saveFundTemplate(state.fundTemplateCmdList).then(() => { ElMessage.success('淇濆瓨鎴愬姛'); + queryList(); }) + }; + const onSure = () => { + state.dialogVisible = false; } return { ...toRefs(state), queryList, - queryDeptPage, onEdit, + selectChange, onSure }; } @@ -124,6 +161,6 @@ export default { <style scoped> .newRow { - margin: 10px 0; + } </style> diff --git a/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue b/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue index e923016e..4fc3e67b 100644 --- a/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue +++ b/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue @@ -220,7 +220,7 @@ export default { setup(props, cxt) { onMounted(() => { queryUserPage(); - queryTemplateInfo(); + listBusinessTemplate(); queryProjectTargetOneList(); if (props.editInfo) { console.log('props.editInfo', props.editInfo); @@ -355,8 +355,8 @@ export default { state.taoList = res.data; }); }; - const queryTemplateInfo = () => { - ProjectLibrary.queryTemplateInfo('').then(res => { + const listBusinessTemplate = () => { + ProjectLibrary.listBusinessTemplate({}).then(res => { state.options = res.data; console.log(state.options, 'test1'); }); @@ -475,7 +475,7 @@ export default { return { handleBack, getList, - queryTemplateInfo, + listBusinessTemplate, queryUserPage, selectVisibleChange, handleSave, 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 e583058e..eca4d103 100644 --- a/WebSite/src/views/main/project-library/department/components/List.vue +++ b/WebSite/src/views/main/project-library/department/components/List.vue @@ -57,7 +57,7 @@ <el-table-column label="椤圭洰搴�" prop="projectLibraryName"> <template #default="scope"> <el-button - @click="toDetail(scope.row)" + @click="toXmk(scope.row)" :type="scope.row.projectLibraryState == 2 ? 'text' : 'primary'" >{{ scope.row.projectLibraryName }}</el-button > @@ -94,7 +94,7 @@ > </template> </el-table-column> - <el-table-column label="鎵瑰" prop="replyName"> + <!-- <el-table-column label="鎵瑰" prop="replyName"> <template #default="scope"> <el-button v-if="scope.row.replyState == 1" @@ -109,7 +109,7 @@ {{ scope.row.replyName }} </el-button> </template> - </el-table-column> + </el-table-column> --> </el-table> <Pagination v-show="departInfo.total > 0" @@ -335,6 +335,9 @@ export default { getDepartPageInfo(); }); }; + const toXmk = (row) => { + cxt.emit('switch-page', 'Detail', true, row.projectLibraryID); + } const toDetail = (row, index) => { console.log('row', row); if (row.replyState == 0) { @@ -464,7 +467,8 @@ export default { handleSelectionProject, getDepartPageInfoFirst, handleSelectionChange, - getmoneyInfo + getmoneyInfo, + toXmk // toDetailNew }; } 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 cb63432d..28d3579a 100644 --- a/WebSite/src/views/main/project-library/inSchool/components/List.vue +++ b/WebSite/src/views/main/project-library/inSchool/components/List.vue @@ -72,13 +72,13 @@ }}</el-button> </template> </el-table-column> - <el-table-column label="鎵瑰" prop="replyName"> + <!-- <el-table-column label="鎵瑰" prop="replyName"> <template #default="scope"> <el-button @click="toThree(scope.row)" type="text">{{ scope.row.replyName }}</el-button> </template> - </el-table-column> + </el-table-column> --> </el-table> <Pagination v-show="departInfo.total > 0" diff --git a/WebSite/src/views/performance/declarationview.vue b/WebSite/src/views/performance/declarationview.vue index f164488b..a228de68 100644 --- a/WebSite/src/views/performance/declarationview.vue +++ b/WebSite/src/views/performance/declarationview.vue @@ -15,6 +15,7 @@ v-model="formData.year" type="year" placeholder="閫夋嫨骞�" + @change="setYear" > </el-date-picker> </el-form-item> @@ -190,6 +191,7 @@ import Api from '@/api'; import ProjectLibrary from '@/api/projectLibrary'; import { moneyFormat } from '@/utils'; +import Moment from 'moment'; export default { name: 'search', data() { @@ -313,7 +315,9 @@ export default { } }); }, - + setYear() { + this.formData.year = Moment(this.formData.year).format('YYYY'); + }, //鍒嗛〉 changePage(val) { this.formData.pageIndex = val.page; diff --git a/WebSite/src/views/performance/declarationwatchview.vue b/WebSite/src/views/performance/declarationwatchview.vue index 3e040768..ff590537 100644 --- a/WebSite/src/views/performance/declarationwatchview.vue +++ b/WebSite/src/views/performance/declarationwatchview.vue @@ -15,6 +15,7 @@ v-model="formData.year" type="year" placeholder="閫夋嫨骞�" + @change="setYear" > </el-date-picker> </el-form-item> @@ -190,6 +191,7 @@ import Api from '@/api'; import ProjectLibrary from '@/api/projectLibrary'; import { moneyFormat } from '@/utils'; +import Moment from 'moment'; export default { name: 'search', data() { @@ -311,7 +313,9 @@ export default { } }); }, - + setYear() { + this.formData.year = Moment(this.formData.year).format('YYYY'); + }, //鍒嗛〉 changePage(val) { this.formData.pageIndex = val.page; diff --git a/WebSite/src/views/performance/evaluationview.vue b/WebSite/src/views/performance/evaluationview.vue index 29601511..125776d5 100644 --- a/WebSite/src/views/performance/evaluationview.vue +++ b/WebSite/src/views/performance/evaluationview.vue @@ -15,6 +15,7 @@ v-model="formData.year" type="year" placeholder="閫夋嫨骞�" + @change="setYear" > </el-date-picker> </el-form-item> @@ -191,6 +192,7 @@ import Api from '@/api'; import { moneyFormat } from '@/utils'; import ProjectLibrary from '@/api/projectLibrary'; +import Moment from 'moment'; export default { name: 'search', data() { @@ -306,6 +308,9 @@ export default { this.formData.pageSize = val.limit; this.getselflist(this.formData); }, + setYear() { + this.formData.year = Moment(this.formData.year).format('YYYY'); + }, //鑾峰彇鍏ㄩ儴椤圭洰 diff --git a/WebSite/src/views/performance/evaluationwatchview.vue b/WebSite/src/views/performance/evaluationwatchview.vue index 431e121d..41ac8d5a 100644 --- a/WebSite/src/views/performance/evaluationwatchview.vue +++ b/WebSite/src/views/performance/evaluationwatchview.vue @@ -15,6 +15,7 @@ v-model="formData.year" type="year" placeholder="閫夋嫨骞�" + @change="setYear" > </el-date-picker> </el-form-item> @@ -191,6 +192,7 @@ import Api from '@/api'; import { moneyFormat } from '@/utils'; import ProjectLibrary from '@/api/projectLibrary'; +import Moment from 'moment'; export default { name: 'search', data() { @@ -280,6 +282,9 @@ export default { this.formData.pageIndex = 1; this.getselflist(this.formData); }, + setYear() { + this.formData.year = Moment(this.formData.year).format('YYYY'); + }, //鍒犻櫎 remove(row) { this.$router.push({ diff --git a/WebSite/src/views/performance/rectificationview.vue b/WebSite/src/views/performance/rectificationview.vue index 042be5b2..5e448c2d 100644 --- a/WebSite/src/views/performance/rectificationview.vue +++ b/WebSite/src/views/performance/rectificationview.vue @@ -15,6 +15,7 @@ v-model="formData.year" type="year" placeholder="閫夋嫨骞�" + @change="setYear" > </el-date-picker> </el-form-item> @@ -191,6 +192,7 @@ import Api from '@/api'; import ProjectLibrary from '@/api/projectLibrary'; import { moneyFormat } from '@/utils'; +import Moment from 'moment'; export default { name: 'search', data() { @@ -286,6 +288,9 @@ export default { handleSelectionChange(val) { this.multipleSelection = val; }, + setYear() { + this.formData.year = Moment(this.formData.year).format('YYYY'); + }, //鏌ヨ search() { this.formData.pageIndex = 1; diff --git a/WebSite/src/views/performance/rectificationwatchview.vue b/WebSite/src/views/performance/rectificationwatchview.vue index c729bb14..379902e9 100644 --- a/WebSite/src/views/performance/rectificationwatchview.vue +++ b/WebSite/src/views/performance/rectificationwatchview.vue @@ -15,6 +15,7 @@ v-model="formData.year" type="year" placeholder="閫夋嫨骞�" + @change="setYear" > </el-date-picker> </el-form-item> @@ -191,6 +192,7 @@ import Api from '@/api'; import ProjectLibrary from '@/api/projectLibrary'; import { moneyFormat } from '@/utils'; +import Moment from 'moment'; export default { name: 'search', data() { @@ -291,6 +293,9 @@ export default { this.formData.pageIndex = 1; this.getreformlist(this.formData); }, + setYear() { + this.formData.year = Moment(this.formData.year).format('YYYY'); + }, //鍒犻櫎 remove(row) { diff --git a/WebSite/src/views/yo-common/ProjectFundApply/index.vue b/WebSite/src/views/yo-common/ProjectFundApply/index.vue index ca38b695..d9e39d92 100644 --- a/WebSite/src/views/yo-common/ProjectFundApply/index.vue +++ b/WebSite/src/views/yo-common/ProjectFundApply/index.vue @@ -2277,7 +2277,7 @@ export default { const fundSubjectChhange = (value, row) => { const fund = budgetData.fundsList.find(item => item.name == value); row.subjectCode = fund.code; - row.subjectId = fund.id; + row.subjectId = fund.subjectId; row.otherJson.fundDescribe = fund.fundDescribe; row.number = 0; row.price = 0; diff --git a/WebSite/src/views/yo-common/PublicFundApply/index.vue b/WebSite/src/views/yo-common/PublicFundApply/index.vue index 92631282..7ad5eef3 100644 --- a/WebSite/src/views/yo-common/PublicFundApply/index.vue +++ b/WebSite/src/views/yo-common/PublicFundApply/index.vue @@ -1135,6 +1135,7 @@ export default { const fundSubjectChhange = (value, row) => { const fund = budgetData.fundsList.find(item => item.fundName == value); row.subjectCode = fund.fundCode; + row.subjectId = fund.id; row.otherJson.fundDescribe = fund.fundDescribe; row.number = 0; row.price = 0; -- GitLab From e6df0fb89386f6d929f3af6a0255ca343e3a28f2 Mon Sep 17 00:00:00 2001 From: lshwy817 <lshwy817@163.com> Date: Fri, 2 Dec 2022 16:01:20 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E7=BB=A9=E6=95=88=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebSite/src/api/performance.js | 14 +- WebSite/src/api/projectLibrary.js | 3 + .../allocation/apply/components/Detail.vue | 2 +- .../compLibrary/components/List.vue | 72 ++- .../compLibrary/components/ListOld.vue | 326 ++++++++++++++ .../declare/components/List.vue | 88 ++-- .../declare/components/ListOld.vue | 424 ++++++++++++++++++ .../reserve/components/List.vue | 67 +-- .../reserve/components/ListOld.vue | 330 ++++++++++++++ WebSite/src/views/performance/declaration.vue | 88 +++- .../src/views/performance/declarationview.vue | 13 +- .../performance/declarationwatchview.vue | 7 +- WebSite/src/views/performance/evaluation.vue | 70 ++- .../src/views/performance/evaluationview.vue | 7 +- .../views/performance/evaluationwatchview.vue | 7 +- .../src/views/performance/rectification.vue | 38 +- .../views/performance/rectificationview.vue | 7 +- .../performance/rectificationwatchview.vue | 7 +- .../first/PeopleFundApply/components/List.vue | 2 +- .../SecondPeopleFundApply/components/List.vue | 2 +- 20 files changed, 1386 insertions(+), 188 deletions(-) create mode 100644 WebSite/src/views/main/project-library/compLibrary/components/ListOld.vue create mode 100644 WebSite/src/views/main/project-library/declare/components/ListOld.vue create mode 100644 WebSite/src/views/main/project-library/reserve/components/ListOld.vue diff --git a/WebSite/src/api/performance.js b/WebSite/src/api/performance.js index a925d440..c4bc80ad 100644 --- a/WebSite/src/api/performance.js +++ b/WebSite/src/api/performance.js @@ -36,5 +36,17 @@ export default { //缁╂晥淇濆瓨 saveTargetPlanReform(data) { return request.post('/target/saveTargetPlanReform', data); - } + }, + // 鎻愪氦 + submitTarget(data) { + return request.post('/target/submitTarget', data); + }, + // 鍥為€€ + rollBackTarget(data) { + return request.post('/target/rollBackTarget', data); + }, + // 鍥炴挙 + recallTarget(data) { + return request.post('/target/recallTarget', data); + }, }; diff --git a/WebSite/src/api/projectLibrary.js b/WebSite/src/api/projectLibrary.js index 3d7019e2..6723a9f1 100644 --- a/WebSite/src/api/projectLibrary.js +++ b/WebSite/src/api/projectLibrary.js @@ -11,6 +11,9 @@ class ProjectLibrary extends Base { static listProjectLibraryGzy(data) { return request.post('/projectLibrary/listProjectLibraryGzy', data); } + static listProjectLibraryGzyChange(data) { + return request.post('/projectLibrary/listProjectLibraryGzyChange', data); + } // 鐢虫姤鎺у埗鍒楄〃 static queryBudgetDeptSwitchDetail(data) { return request.post('/baseConfig/queryBudgetDeptSwitchDetail', data); diff --git a/WebSite/src/views/main/allocation/apply/components/Detail.vue b/WebSite/src/views/main/allocation/apply/components/Detail.vue index 55810353..b015d48f 100644 --- a/WebSite/src/views/main/allocation/apply/components/Detail.vue +++ b/WebSite/src/views/main/allocation/apply/components/Detail.vue @@ -56,7 +56,7 @@ fit > <el-table-column label="鏄庣粏鍐呭" prop="subjectContent" /> - <el-table-column label="鏀嚭棰濆害" prop="limitName" /> + <el-table-column label="鏀嚭棰濆害" prop="subjectName" /> <el-table-column label="棰勭畻閲戦" prop="subtotal"> <template #default="scope"> {{ moneyFormat(scope.row.subtotal, 2, ',') }} diff --git a/WebSite/src/views/main/project-library/compLibrary/components/List.vue b/WebSite/src/views/main/project-library/compLibrary/components/List.vue index fa83c878..61d5ec0c 100644 --- a/WebSite/src/views/main/project-library/compLibrary/components/List.vue +++ b/WebSite/src/views/main/project-library/compLibrary/components/List.vue @@ -66,50 +66,36 @@ class="mtop20" fit @selection-change="handleSelectionChange" + border > - <el-table-column type="selection" width="55" align="center" /> - <el-table-column type="index" width="55" align="center" label="搴忓彿" /> - <el-table-column label="娴佺▼鐘舵€�" prop="state" /> - <el-table-column label="椤圭洰绾у埆" prop="level" /> - <el-table-column label="椤圭洰鍚嶇О" prop="projectName" /> - <!-- <el-table-column label="椤圭洰绫诲瀷" prop="projectType" /> --> - <!-- <el-table-column label="閮ㄩ棬鍚嶇О" prop="departmentName" /> --> - <!-- <el-table-column label="閮ㄩ棬缂栧彿" prop="departmentCode" /> --> - <!-- <el-table-column label="璐熻矗浜虹紪鍙�" prop="projectLeaderCode" /> --> - <el-table-column label="璐熻矗浜哄鍚�" prop="projectLeaderName" /> - <el-table-column label="鐢虫姤鍗曚綅" prop="departmentName" /> - <el-table-column label="褰掑彛绠$悊閮ㄩ棬" prop="guiKouName" /> - <el-table-column label="娴佺▼鎵€鍦ㄥ矖骞村害" prop="year" /> - <el-table-column label="椤圭洰鐘舵€�" prop="projectState"> + <el-table-column type="selection" width="55" align="center" :selectable="selectable"/> + <el-table-column width="55" align="center" label="搴忓彿" prop="num"> <template #default="scope"> - <span>{{ scope.row.projectState === 0 ? '-' : scope.row.projectState === 1 ? '鍦ㄥ缓' : scope.row.projectState === 2 ? '涓' : '瀹岀粨'}}</span> + {{ scope.row.num == 0 ? '' : scope.row.num }} </template> </el-table-column> - <!-- <el-table-column label="鐢虫姤閲戦" prop="planMoney" align="right"> + <el-table-column label="娴佺▼鐘舵€�" prop="state" /> + <el-table-column label="椤圭洰绾у埆" prop="levelName" v-if="checkInfo.identification == '1' ? false : true" /> + <el-table-column label="椤圭洰鍚嶇О" prop="name" width="280"> <template #default="scope"> - {{ moneyFormat(scope.row.planMoney, 2, ',') }} + <div v-if="(scope.row.projectIdentification == false)" style="font-weight: 600; color: #999999;"> + {{ makeName(scope.row.name, scope.row.level) }} + </div> + <div v-if="scope.row.projectIdentification"> + <a @click="seeView(scope.row)" style="color: #409EFF;">{{ makeName(scope.row.name, scope.row.level) }}</a> + </div> </template> - </el-table-column> --> - <el-table-column label="鎿嶄綔" width="260px" align="center"> + </el-table-column> + <el-table-column label="璐熻矗浜哄鍚�" prop="projectLeaderName" /> + <el-table-column label="鐢虫姤鍗曚綅" prop="departmentName" /> + <el-table-column label="褰掑彛绠$悊閮ㄩ棬" prop="guiKouName" /> + <el-table-column label="娴佺▼鎵€鍦ㄥ矖骞村害" prop="year" /> + <el-table-column label="椤圭洰鐘舵€�" prop="projectState" > <template #default="scope"> - <el-form> - <el-button type="primary" plain @click="seeView(scope.row)" - >鏌ョ湅</el-button - > - <!-- <el-button type="primary" plain @click="changeState(scope.row.id)" - >鍙栨秷杩涘叆瀹岀粨搴�</el-button - > --> - </el-form> + <span>{{ scope.row.projectState === 0 ? '-' : scope.row.projectState === 1 ? '鍦ㄥ缓' : scope.row.projectState === 2 ? '涓' : '瀹岀粨'}}</span> </template> </el-table-column> </el-table> - <Pagination - v-show="departInfo.total > 0" - :total="departInfo.total" - v-model:page="checkInfo.pageIndex" - v-model:limit="checkInfo.pageSize" - @pagination="getDepartPageInfo" - /> </el-card> </div> </template> @@ -133,8 +119,6 @@ export default { year: sessionStorage.getItem('year'), //骞翠唤 projectName: '', //椤圭洰鍚嶇О departmentCode: '', //椤圭洰搴� - pageIndex: 1, - pageSize: 10, declarationStateGzy: '2', //锛�0锛氱敵鎶ュ簱锛�1锛氬偍澶囧簱锛�2锛氬畬缁撳簱锛� projectState: [2,3], level: '' @@ -203,7 +187,7 @@ export default { // } }; const getDepartPageInfo = () => { - ProjectLibrary.listProjectLibraryGzy(state.checkInfo).then(res => { + ProjectLibrary.listProjectLibraryGzyChange(state.checkInfo).then(res => { state.departInfo.tableData = res.data; state.departInfo.total = res.total; // console.log(state.departInfo,'1234') @@ -299,6 +283,16 @@ export default { ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒'); } }; + const makeName = (name, level) => { + console.log('name', name, level); + for (let i = 1; i < level; i++) { + name = '\xa0\xa0\xa0\xa0' + name; + } + return name + }; + const selectable = (row) => { + return row.projectIdentification + } return { ...toRefs(state), getDepartPageInfoFirst, @@ -317,7 +311,9 @@ export default { onChushi, onZaijian, onZhongzhi, - onWanjie + onWanjie, + makeName, + selectable }; } }; diff --git a/WebSite/src/views/main/project-library/compLibrary/components/ListOld.vue b/WebSite/src/views/main/project-library/compLibrary/components/ListOld.vue new file mode 100644 index 00000000..fa83c878 --- /dev/null +++ b/WebSite/src/views/main/project-library/compLibrary/components/ListOld.vue @@ -0,0 +1,326 @@ +<template> + <div> + <el-card> + <el-row :gutter="20"> + <el-col :span="6"> + <el-date-picker + v-model="checkInfo.year" + :editable="false" + type="year" + @change="setTime" + placeholder="閫夋嫨骞�" + > + </el-date-picker> + </el-col> + <!-- <el-col :span="6"> + <el-input + v-model="checkInfo.projectType" + placeholder="璇疯緭鍏ラ」鐩被鍨�" + ></el-input> + </el-col> --> + <el-col :span="6"> + <el-input + v-model="checkInfo.projectName" + placeholder="璇疯緭鍏ラ」鐩悕绉�" + ></el-input> + </el-col> + <el-col :span="6"> + <el-select + filterable + clearable + v-model="checkInfo.departmentCode" + placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" + > + <el-option + v-for="(v, index) in deptList" + :key="index" + :label="v.name" + :value="v.code" + ></el-option> + </el-select> + </el-col> + + </el-row> + <el-row class="mtop20" :gutter="20"> + <el-col :span="6"> + <el-select v-model="checkInfo.level" placeholder="璇疯緭鍏ラ」鐩骇鍒�" clearable> + <el-option label="涓夌骇椤圭洰" value="3"></el-option> + <el-option label="鍥涚骇椤圭洰" value="4"></el-option> + </el-select> + </el-col> + <el-col :span="12"> + <el-button plain @click="getDepartPageInfoFirst">鏌ヨ</el-button> + <el-button type="primary" plain @click="onChushi">鍒濆鍖栭」鐩姸鎬�</el-button> + <el-button type="primary" plain @click="onZaijian">鍦ㄥ缓椤圭洰</el-button> + <el-button type="primary" plain @click="onZhongzhi">涓椤圭洰</el-button> + <el-button type="primary" plain @click="onWanjie">瀹岀粨椤圭洰</el-button> + </el-col> + </el-row> + </el-card> + <el-card class="mtop20"> + <el-table + stripe + :data="departInfo.tableData" + style="width: 100%" + ref="multipleTable" + class="mtop20" + fit + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" width="55" align="center" /> + <el-table-column type="index" width="55" align="center" label="搴忓彿" /> + <el-table-column label="娴佺▼鐘舵€�" prop="state" /> + <el-table-column label="椤圭洰绾у埆" prop="level" /> + <el-table-column label="椤圭洰鍚嶇О" prop="projectName" /> + <!-- <el-table-column label="椤圭洰绫诲瀷" prop="projectType" /> --> + <!-- <el-table-column label="閮ㄩ棬鍚嶇О" prop="departmentName" /> --> + <!-- <el-table-column label="閮ㄩ棬缂栧彿" prop="departmentCode" /> --> + <!-- <el-table-column label="璐熻矗浜虹紪鍙�" prop="projectLeaderCode" /> --> + <el-table-column label="璐熻矗浜哄鍚�" prop="projectLeaderName" /> + <el-table-column label="鐢虫姤鍗曚綅" prop="departmentName" /> + <el-table-column label="褰掑彛绠$悊閮ㄩ棬" prop="guiKouName" /> + <el-table-column label="娴佺▼鎵€鍦ㄥ矖骞村害" prop="year" /> + <el-table-column label="椤圭洰鐘舵€�" prop="projectState"> + <template #default="scope"> + <span>{{ scope.row.projectState === 0 ? '-' : scope.row.projectState === 1 ? '鍦ㄥ缓' : scope.row.projectState === 2 ? '涓' : '瀹岀粨'}}</span> + </template> + </el-table-column> + <!-- <el-table-column label="鐢虫姤閲戦" prop="planMoney" align="right"> + <template #default="scope"> + {{ moneyFormat(scope.row.planMoney, 2, ',') }} + </template> + </el-table-column> --> + <el-table-column label="鎿嶄綔" width="260px" align="center"> + <template #default="scope"> + <el-form> + <el-button type="primary" plain @click="seeView(scope.row)" + >鏌ョ湅</el-button + > + <!-- <el-button type="primary" plain @click="changeState(scope.row.id)" + >鍙栨秷杩涘叆瀹岀粨搴�</el-button + > --> + </el-form> + </template> + </el-table-column> + </el-table> + <Pagination + v-show="departInfo.total > 0" + :total="departInfo.total" + v-model:page="checkInfo.pageIndex" + v-model:limit="checkInfo.pageSize" + @pagination="getDepartPageInfo" + /> + </el-card> + </div> +</template> + +<script> +import { reactive, toRefs, onMounted, ref } from 'vue'; +import ProjectLibrary from '@/api/projectLibrary'; +import Moment from 'moment'; +import { moneyFormat } from '@/utils'; +import { ElMessage } from 'element-plus'; +export default { + setup(props, cxt) { + onMounted(() => { + getDepartPageInfo(); + getPlanTypeEnum(); + }); + const multipleTable = ref(null); + const state = reactive({ + deptList: [], + checkInfo: { + year: sessionStorage.getItem('year'), //骞翠唤 + projectName: '', //椤圭洰鍚嶇О + departmentCode: '', //椤圭洰搴� + pageIndex: 1, + pageSize: 10, + declarationStateGzy: '2', //锛�0锛氱敵鎶ュ簱锛�1锛氬偍澶囧簱锛�2锛氬畬缁撳簱锛� + projectState: [2,3], + level: '' + }, + departInfo: { + total: 0, + tableData: [] + }, + planInfo: [] + }); + const getDepartPageInfoFirst = () => { + state.checkInfo.pageIndex = 1; + getDepartPageInfo(); + }; + const toDetail = row => { + cxt.emit('switch-page', 'Detail', true, row.id); + }; + // 鍒楄〃 + const queryDeptPage = () => { + ProjectLibrary.queryDeptPage({ pageIndex: 1, pageSize: 9999 }).then( + res => { + state.deptList = res.data; + } + ); + }; + const toOne = row => { + console.log('row', row); + // 0 杩涘叆 1 鍙栨秷 2 鏂囧瓧 + // if (row.oneUPState === 0) { + // ProjectLibrary.enterProjectPlanType1(row.id).then(res => { + // console.log('resrow', res); + // getDepartPageInfo(); + // }); + // } else if (row.oneUPState === 1) { + // if (index === 1) { + // cxt.emit('switch-page', 'Detail', true, row.oneUPBookID); + // } else { + // ProjectLibrary.cancelEnterProjectPlanType1(row.id).then(res => { + // console.log('res', res); + // getDepartPageInfo(); + // }); + // } + // } else { + cxt.emit('switch-page', 'Detail', true, row.oneUPBookID); + // } + }; + const toTwo = row => { + console.log('row', row); + // 0 杩涘叆 1 鍙栨秷 2 鏂囧瓧 + // if (row.twoUPState === 0) { + // ProjectLibrary.enterProjectPlanType2(row.id).then(res => { + // console.log('resrow', res); + // getDepartPageInfo(); + // }); + // } else if (row.twoUPState === 1) { + // if (index === 1) { + // cxt.emit('switch-page', 'Detail', true, row.twoUPBookID); + // } else { + // ProjectLibrary.cancelEnterProjectPlanType2(row.id).then(res => { + // console.log('res', res); + // getDepartPageInfo(); + // }); + // } + // } else { + cxt.emit('switch-page', 'Detail', true, row.twoUPBookID); + // } + }; + const getDepartPageInfo = () => { + ProjectLibrary.listProjectLibraryGzy(state.checkInfo).then(res => { + state.departInfo.tableData = res.data; + state.departInfo.total = res.total; + // console.log(state.departInfo,'1234') + }); + }; + const getPlanTypeEnum = () => { + ProjectLibrary.getPlanTypeEnum({}).then(res => { + console.log('res', res); + state.planInfo = res.data; + }); + }; + const seeView = row => { + cxt.emit('switch-page', 'Detail', true, row.id); + }; + const setTime = () => { + state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY'); + }; + const changeState = id => { + ProjectLibrary.RepealChangeDeclarationStateById(id).then(() => { + ElMessage.success('鎾ゅ洖鎴愬姛'); + getDepartPageInfo(); + }); + }; + queryDeptPage(); + const handleSelectionChange = (val) => { + state.selectList = val + } + // 鍒濆鍖栭」鐩姸鎬� + const onChushi = () => { + let idList = []; + if (state.selectList.length > 0) { + state.selectList.find(item => { + idList.push(item.id) + }) + ProjectLibrary.projectStateInit(idList).then((res) => { + if (res) { + ElMessage.success('鍒濆鍖栭」鐩姸鎬佹垚鍔�'); + getDepartPageInfo(); + } + }) + } else { + ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒'); + } + }; + // 鍦ㄥ缓椤圭洰 + const onZaijian = () => { + let idList = []; + if (state.selectList.length > 0) { + state.selectList.find(item => { + idList.push(item.id) + }) + ProjectLibrary.projectStateStart(idList).then((res) => { + if (res) { + ElMessage.success('鍦ㄥ缓椤圭洰鎴愬姛'); + getDepartPageInfo(); + } + }) + } else { + ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒'); + } + }; + // 涓椤圭洰 + const onZhongzhi = () => { + let idList = []; + if (state.selectList.length > 0) { + state.selectList.find(item => { + idList.push(item.id) + }) + ProjectLibrary.projectStateBreak(idList).then((res) => { + if (res) { + ElMessage.success('涓椤圭洰鎴愬姛'); + getDepartPageInfo(); + } + }) + } else { + ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒'); + } + }; + // 瀹岀粨椤圭洰 + const onWanjie = () => { + let idList = []; + if (state.selectList.length > 0) { + state.selectList.find(item => { + idList.push(item.id) + }) + ProjectLibrary.projectStateSuccess(idList).then((res) => { + if (res) { + ElMessage.success('瀹岀粨椤圭洰鎴愬姛'); + getDepartPageInfo(); + } + }) + } else { + ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒'); + } + }; + return { + ...toRefs(state), + getDepartPageInfoFirst, + getPlanTypeEnum, + multipleTable, + seeView, + setTime, + getDepartPageInfo, + queryDeptPage, + moneyFormat, + toDetail, + toOne, + toTwo, + changeState, + handleSelectionChange, + onChushi, + onZaijian, + onZhongzhi, + onWanjie + }; + } +}; +</script> + +<style></style> diff --git a/WebSite/src/views/main/project-library/declare/components/List.vue b/WebSite/src/views/main/project-library/declare/components/List.vue index e10a9846..e57d10fe 100644 --- a/WebSite/src/views/main/project-library/declare/components/List.vue +++ b/WebSite/src/views/main/project-library/declare/components/List.vue @@ -24,7 +24,12 @@ ></el-input> </el-col> <el-col :span="6"> - <el-select v-model="checkInfo.level" placeholder="璇疯緭鍏ラ」鐩骇鍒�" clearable v-if="checkInfo.identification == '1' ? false : true"> + <el-select + v-model="checkInfo.level" + placeholder="璇疯緭鍏ラ」鐩骇鍒�" + clearable + v-if="checkInfo.identification == '1' ? false : true" + > <el-option label="涓夌骇椤圭洰" value="3"></el-option> <el-option label="鍥涚骇椤圭洰" value="4"></el-option> </el-select> @@ -60,40 +65,48 @@ class="mtop20" @selection-change="handleSelectionChange" fit + border > - <el-table-column type="selection" width="55" align="center" /> - <el-table-column type="index" width="55" align="center" label="搴忓彿" /> + <el-table-column type="selection" width="55" align="center" :selectable="selectable" /> + <el-table-column width="55" align="center" label="搴忓彿" prop="num"> + <template #default="scope"> + {{ scope.row.num == 0 ? '' : scope.row.num }} + </template> + </el-table-column> <!-- <el-table-column label="椤圭洰绫诲瀷" prop="projectType" /> --> <!-- <el-table-column label="璐熻矗浜虹紪鍙�" prop="projectLeaderCode" /> --> <el-table-column label="娴佺▼鐘舵€�" prop="state" /> - <el-table-column label="椤圭洰绾у埆" prop="level" v-if="checkInfo.identification == '1' ? false : true" /> - <el-table-column label="椤圭洰鍚嶇О" prop="projectName" /> + <el-table-column + label="椤圭洰绾у埆" + prop="levelName" + v-if="checkInfo.identification == '1' ? false : true" + + /> + <el-table-column label="椤圭洰鍚嶇О" prop="name" width="280"> + <template #default="scope"> + <div v-if="(scope.row.projectIdentification == false)" style="font-weight: 600; color: #999999;"> + {{ makeName(scope.row.name, scope.row.level) }} + </div> + <div v-if="scope.row.projectIdentification"> + <a @click="seeView(scope.row)" style="color: #409EFF;">{{ makeName(scope.row.name, scope.row.level) }}</a> + </div> + </template> + </el-table-column> <el-table-column label="璐熻矗浜�" prop="projectLeaderName" /> <el-table-column label="鐢虫姤鍗曚綅" prop="departmentName" /> - <el-table-column label="褰掑彛绠$悊閮ㄩ棬" prop="guiKouName" show-overflow-tooltip="true" /> + <el-table-column + label="褰掑彛绠$悊閮ㄩ棬" + prop="guiKouName" + show-overflow-tooltip="true" + + /> <el-table-column label="娴佺▼鎵€鍦ㄥ矖骞村害" prop="year" /> <el-table-column label="鐢虫姤閲戦" prop="totalMoney" align="right"> <template #default="scope"> {{ moneyFormat(scope.row.totalMoney, 2, ',') }} </template> </el-table-column> - <el-table-column label="鎿嶄綔" width="200px" align="center"> - <template #default="scope"> - <el-form> - <el-button type="primary" plain @click="seeView(scope.row)" - >鏌ョ湅</el-button - > - </el-form> - </template> - </el-table-column> </el-table> - <Pagination - v-show="departInfo.total > 0" - :total="departInfo.total" - v-model:page="checkInfo.pageIndex" - v-model:limit="checkInfo.pageSize" - @pagination="getDepartPageInfo" - /> </el-card> <el-dialog title="鎸戦€夐」鐩�" v-model="dialogVisible" width="800px"> <div> @@ -179,8 +192,6 @@ export default { projectName: '', //椤圭洰鍚嶇О departmentCode: '', typeList: '', - pageIndex: 1, - pageSize: 10, identification: route.path == '/i/project-library/declare' ? 0 : 1, level: '' }, @@ -213,7 +224,7 @@ export default { watch( () => route.path, val => { - console.log('route.path', val,val == '/i/project-library/declare'); + console.log('route.path', val, val == '/i/project-library/declare'); state.checkInfo.identification = val == '/i/project-library/declare' ? 0 : 1; } @@ -248,14 +259,14 @@ export default { state.multipleSelection = val; }; const getDepartPageInfoFirst = () => { - state.checkInfo.pageIndex = 1; + // state.checkInfo.pageIndex = 1; getDepartPageInfo(); }; // 鍒楄〃 const getDepartPageInfo = () => { state.checkInfo.declarationStateGzy = '0'; - state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY') - ProjectLibrary.listProjectLibraryGzy(state.checkInfo).then(res => { + state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY'); + ProjectLibrary.listProjectLibraryGzyChange(state.checkInfo).then(res => { state.departInfo.tableData = res.data; state.departInfo.total = res.total; }); @@ -274,7 +285,9 @@ export default { }; const queryHistoryProjectLibraryPageByCurrentUserDept = () => { state.loading = true; - state.projectCheckInfo.year = Moment(state.projectCheckInfo.year).format('YYYY') + state.projectCheckInfo.year = Moment(state.projectCheckInfo.year).format( + 'YYYY' + ); ProjectLibrary.queryHistoryProjectLibraryPageByCurrentUserDept( state.projectCheckInfo ).then(res => { @@ -389,6 +402,16 @@ export default { const downloadImportTemplate = () => { ProjectLibrary.downLoadInfoTemplate(); }; + const makeName = (name, level) => { + console.log('name', name, level); + for (let i = 1; i < level; i++) { + name = '\xa0\xa0\xa0\xa0' + name; + } + return name + }; + const selectable = (row) => { + return row.projectIdentification + } return { ...toRefs(state), handleAdd, @@ -414,11 +437,12 @@ export default { handleSelectionProject, getDepartPageInfoFirst, handleSelectionChange, - getmoneyInfo + getmoneyInfo, + makeName, + selectable }; } }; </script> -<style lang="scss" scoped> -</style> +<style lang="scss" scoped></style> diff --git a/WebSite/src/views/main/project-library/declare/components/ListOld.vue b/WebSite/src/views/main/project-library/declare/components/ListOld.vue new file mode 100644 index 00000000..e10a9846 --- /dev/null +++ b/WebSite/src/views/main/project-library/declare/components/ListOld.vue @@ -0,0 +1,424 @@ +<template> + <div> + <el-card> + <el-row :gutter="20"> + <el-col :span="6"> + <el-date-picker + :editable="false" + v-model="checkInfo.year" + type="year" + placeholder="閫夋嫨骞�" + > + </el-date-picker> + </el-col> + <!-- <el-col :span="6"> + <el-input + v-model="checkInfo.projectType" + placeholder="璇疯緭鍏ラ」鐩被鍨�" + ></el-input> + </el-col> --> + <el-col :span="6"> + <el-input + v-model="checkInfo.projectName" + placeholder="璇疯緭鍏ラ」鐩悕绉�" + ></el-input> + </el-col> + <el-col :span="6"> + <el-select v-model="checkInfo.level" placeholder="璇疯緭鍏ラ」鐩骇鍒�" clearable v-if="checkInfo.identification == '1' ? false : true"> + <el-option label="涓夌骇椤圭洰" value="3"></el-option> + <el-option label="鍥涚骇椤圭洰" value="4"></el-option> + </el-select> + </el-col> + </el-row> + <el-row class="mtop20"> + <el-button type="primary" plain @click="handleAdd">鏂板缓</el-button> + <el-button plain @click="getDepartPageInfoFirst">鏌ヨ</el-button> + <el-button type="danger" plain @click="handleDel">鍒犻櫎</el-button> + <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: auto;line-height: 18px;color: red;font-size: 12px;border: 1px solid red;padding-top:3px;padding-bottom:3px;padding-left:3px;padding-right:3px;" + > + <div v-for="item in money" :key="item">{{ item }}</div> + </div> + </el-row> --> + </el-card> + <el-card class="mtop20"> + <el-table + stripe + :data="departInfo.tableData" + style="width: 100%" + ref="multipleTable" + class="mtop20" + @selection-change="handleSelectionChange" + fit + > + <el-table-column type="selection" width="55" align="center" /> + <el-table-column type="index" width="55" align="center" label="搴忓彿" /> + <!-- <el-table-column label="椤圭洰绫诲瀷" prop="projectType" /> --> + <!-- <el-table-column label="璐熻矗浜虹紪鍙�" prop="projectLeaderCode" /> --> + <el-table-column label="娴佺▼鐘舵€�" prop="state" /> + <el-table-column label="椤圭洰绾у埆" prop="level" v-if="checkInfo.identification == '1' ? false : true" /> + <el-table-column label="椤圭洰鍚嶇О" prop="projectName" /> + <el-table-column label="璐熻矗浜�" prop="projectLeaderName" /> + <el-table-column label="鐢虫姤鍗曚綅" prop="departmentName" /> + <el-table-column label="褰掑彛绠$悊閮ㄩ棬" prop="guiKouName" show-overflow-tooltip="true" /> + <el-table-column label="娴佺▼鎵€鍦ㄥ矖骞村害" prop="year" /> + <el-table-column label="鐢虫姤閲戦" prop="totalMoney" align="right"> + <template #default="scope"> + {{ moneyFormat(scope.row.totalMoney, 2, ',') }} + </template> + </el-table-column> + <el-table-column label="鎿嶄綔" width="200px" align="center"> + <template #default="scope"> + <el-form> + <el-button type="primary" plain @click="seeView(scope.row)" + >鏌ョ湅</el-button + > + </el-form> + </template> + </el-table-column> + </el-table> + <Pagination + v-show="departInfo.total > 0" + :total="departInfo.total" + v-model:page="checkInfo.pageIndex" + v-model:limit="checkInfo.pageSize" + @pagination="getDepartPageInfo" + /> + </el-card> + <el-dialog title="鎸戦€夐」鐩�" v-model="dialogVisible" width="800px"> + <div> + <el-row :gutter="20"> + <el-col :span="6"> + <el-date-picker + :editable="false" + v-model="projectCheckInfo.year" + type="year" + placeholder="閫夋嫨骞�" + > + </el-date-picker> + </el-col> + <el-col :span="6"> + <el-input + v-model="projectCheckInfo.projectName" + placeholder="璇疯緭鍏ラ」鐩悕绉�" + ></el-input> + </el-col> + <el-col :span="3"> + <el-button plain @click="queryHistoryFirst">鏌ヨ</el-button> + </el-col> + </el-row> + <el-table + stripe + :data="projectInfo.tableData" + style="width: 100%" + ref="multipleTableP" + class="mtop20" + v-loading="loading" + fit + @selection-change="handleSelectionProject" + > + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="骞翠唤" prop="year" /> + <el-table-column label="椤圭洰缂栧彿" prop="departmentCode" /> + <el-table-column label="椤圭洰鍚嶇О" prop="projectName" /> + <el-table-column label="閲戦" prop="planMoney"> </el-table-column> + <el-table-column + label="鍒跺崟浜�" + prop="projectLeaderName" + ></el-table-column> + </el-table> + <Pagination + v-show="projectInfo.total > 0" + :total="projectInfo.total" + v-model:page="projectCheckInfo.pageIndex" + v-model:limit="projectCheckInfo.pageSize" + @pagination="queryHistoryProjectLibraryPageByCurrentUserDept" + /> + </div> + <template #footer> + <span class="dialog-footer"> + <el-button @click="dialogVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="handleOk">纭� 瀹�</el-button> + </span> + </template> + </el-dialog> + </div> +</template> + +<script> +import { reactive, toRefs, onMounted, ref, watch } from 'vue'; +import { ElMessage, ElMessageBox } from 'element-plus'; +import ProjectLibrary from '@/api/projectLibrary'; +import Moment from 'moment'; +import { Base } from '@/api/base/base'; +import { moneyFormat } from '@/utils'; +import { useRoute } from 'vue-router'; +export default { + setup(props, cxt) { + onMounted(() => { + getDepartPageInfo(); + getmoneyInfo(); + queryHistoryProjectLibraryPageByCurrentUserDept(); + }); + const multipleTable = ref(null); + const multipleTableP = ref(null); + const route = useRoute(); + const state = reactive({ + checkInfo: { + year: sessionStorage.getItem('year'), //骞翠唤 + projectName: '', //椤圭洰鍚嶇О + departmentCode: '', + typeList: '', + pageIndex: 1, + pageSize: 10, + identification: route.path == '/i/project-library/declare' ? 0 : 1, + level: '' + }, + money: [], + + env: process.env.NAME, + uploadDialog: false, + loading: false, + projectCheckInfo: { + year: (Number(sessionStorage.getItem('year')) - 1).toString(), //骞翠唤 + projectName: '', //椤圭洰鍚嶇О + departmentCode: '', + typeList: '', + pageIndex: 1, + pageSize: 10, + declarationStateGzy: '0' //锛�0锛氱敵鎶ュ簱锛�1锛氬偍澶囧簱锛�2锛氬畬缁撳簱锛� + }, + projectInfo: { + total: 0, + tableData: [] + }, + dialogVisible: false, + departInfo: { + total: 0, + tableData: [] + }, + multipleSelection: [], + multipleSelectionProject: [] + }); + watch( + () => route.path, + val => { + console.log('route.path', val,val == '/i/project-library/declare'); + state.checkInfo.identification = + val == '/i/project-library/declare' ? 0 : 1; + } + ); + const seeView = row => { + cxt.emit('switch-page', 'Detail', true, row.id); + }; + // 鍒犻櫎 + const handleDel = () => { + if (state.multipleSelection.length === 0) { + ElMessage.warning('鍒犻櫎鏁版嵁涓嶈兘涓虹┖'); + return false; + } + ElMessageBox.confirm('纭畾鍒犻櫎鎵€閫夌敤鎴峰悧?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }) + .then(() => { + let idList = state.multipleSelection.map(v => v.projectLibraryID); + ProjectLibrary.removeProjectLibrary(idList).then(() => { + ElMessage.success('鍒犻櫎鎴愬姛'); + getDepartPageInfo(); + }); + }) + .catch(() => { + ElMessage.info('宸插彇娑堝垹闄�'); + multipleTable.value.clearSelection(); + }); + }; + const handleSelectionChange = val => { + state.multipleSelection = val; + }; + const getDepartPageInfoFirst = () => { + state.checkInfo.pageIndex = 1; + getDepartPageInfo(); + }; + // 鍒楄〃 + const getDepartPageInfo = () => { + state.checkInfo.declarationStateGzy = '0'; + state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY') + ProjectLibrary.listProjectLibraryGzy(state.checkInfo).then(res => { + state.departInfo.tableData = res.data; + 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; + }); + }; + const queryHistoryFirst = () => { + state.projectCheckInfo.pageIndex = 1; + queryHistoryProjectLibraryPageByCurrentUserDept(); + }; + const queryHistoryProjectLibraryPageByCurrentUserDept = () => { + state.loading = true; + state.projectCheckInfo.year = Moment(state.projectCheckInfo.year).format('YYYY') + ProjectLibrary.queryHistoryProjectLibraryPageByCurrentUserDept( + state.projectCheckInfo + ).then(res => { + state.loading = false; + state.projectInfo.tableData = res.data; + state.projectInfo.total = res.total; + }); + }; + const choiceProject = async () => { + await getProjectInfo(); + state.dialogVisible = true; + }; + const getProjectInfoFirst = () => { + state.projectCheckInfo.pageIndex = 1; + getProjectInfo(); + }; + const getProjectInfo = () => {}; + const getQueryProjectByPage = () => { + getProjectInfo(); + }; + const handleAdd = () => { + cxt.emit('switch-page', 'Detail', true); + }; + const handleSelectionProject = val => { + state.multipleSelectionProject = val; + }; + const handleOk = () => { + let idList = state.multipleSelectionProject.map(v => v.id); + ProjectLibrary.copyHistoryProjectLibrary(idList).then(res => { + console.log('res', res); + state.dialogVisible = false; + multipleTableP.value.clearSelection(); + getDepartPageInfo(); + }); + }; + const toDetail = row => { + cxt.emit('switch-page', 'Detail', true, row.id); + }; + const toOne = (row, index) => { + // 0 杩涘叆 1 鍙栨秷 2 鏂囧瓧 + if (row.oneUPState === 0) { + ProjectLibrary.enterProjectPlanType1(row.id).then(res => { + console.log('resrow', res); + getDepartPageInfo(); + }); + } else if (row.oneUPState === 1) { + if (index === 1) { + cxt.emit('switch-page', 'Detail', true, row.oneUPBookID); + } else { + ProjectLibrary.cancelEnterProjectPlanType1(row.id).then(res => { + console.log('res', res); + getDepartPageInfo(); + }); + } + } else { + cxt.emit('switch-page', 'Detail', true, row.oneUPBookID); + } + }; + const toTwo = (row, index) => { + console.log('row', row); + // 0 杩涘叆 1 鍙栨秷 2 鏂囧瓧 + if (row.twoUPState === 0) { + ProjectLibrary.enterProjectPlanType2(row.id).then(res => { + console.log('resrow', res); + getDepartPageInfo(); + }); + } else if (row.twoUPState === 1) { + if (index === 1) { + cxt.emit('switch-page', 'Detail', true, row.twoUPBookID); + } else { + ProjectLibrary.cancelEnterProjectPlanType2(row.id).then(res => { + console.log('res', res); + getDepartPageInfo(); + }); + } + } else { + cxt.emit('switch-page', 'Detail', true, row.twoUPBookID); + } + }; + const setTime = () => { + state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY'); + }; + const setTime2 = () => { + state.projectCheckInfo.year = Moment(state.projectCheckInfo.year).format( + 'YYYY' + ); + }; + const uploadHandler = async fileList => { + const formData = new FormData(); + fileList.forEach(file => { + formData.append('file', file.raw); + }); + const res = await ProjectLibrary.importInfoPlan(formData); + console.log(res); + if (res.code === '00000') { + ElMessage.success('瀵煎叆鎴愬姛'); + state.uploadDialog = false; + // getPageList(); + } else { + if ('code' in res) { + //閿欒淇℃伅 + ElMessage.warning(res.description); + state.uploadDialog = false; + } else { + //娴� + state.uploadDialog = false; + ElMessage.error('瀵煎叆澶辫触锛岃涓嬭浇鏂囦欢鏌ョ湅澶辫触鍘熷洜'); + Base.downloadFile(res); + } + } + }; + const downloadImportTemplate = () => { + ProjectLibrary.downLoadInfoTemplate(); + }; + return { + ...toRefs(state), + handleAdd, + toOne, + toTwo, + uploadHandler, + setTime, + setTime2, + seeView, + choiceProject, + moneyFormat, + downloadImportTemplate, + toDetail, + handleOk, + multipleTable, + multipleTableP, + getProjectInfoFirst, + queryHistoryFirst, + queryHistoryProjectLibraryPageByCurrentUserDept, + getQueryProjectByPage, + getDepartPageInfo, + handleDel, + handleSelectionProject, + getDepartPageInfoFirst, + handleSelectionChange, + getmoneyInfo + }; + } +}; +</script> + +<style lang="scss" scoped> +</style> diff --git a/WebSite/src/views/main/project-library/reserve/components/List.vue b/WebSite/src/views/main/project-library/reserve/components/List.vue index 3ebdb3b8..2d5aa834 100644 --- a/WebSite/src/views/main/project-library/reserve/components/List.vue +++ b/WebSite/src/views/main/project-library/reserve/components/List.vue @@ -65,16 +65,26 @@ class="mtop20" fit @selection-change="handleSelectionChange" + border > - <el-table-column type="selection" width="55" align="center" /> - <el-table-column type="index" width="55" align="center" label="搴忓彿" /> - <el-table-column label="娴佺▼鐘舵€�" prop="state" /> - <el-table-column label="椤圭洰绾у埆" prop="level" /> - <el-table-column label="椤圭洰鍚嶇О" prop="projectName" /> - <!-- <el-table-column label="椤圭洰绫诲瀷" prop="projectType" /> --> - <!-- <el-table-column label="閮ㄩ棬鍚嶇О" prop="departmentName" /> --> - <!-- <el-table-column label="閮ㄩ棬缂栧彿" prop="departmentCode" /> --> - <!-- <el-table-column label="璐熻矗浜虹紪鍙�" prop="projectLeaderCode" /> --> + <el-table-column type="selection" width="55" align="center" :selectable="selectable" /> + <el-table-column width="55" align="center" label="搴忓彿" prop="num"> + <template #default="scope"> + {{ scope.row.num == 0 ? '' : scope.row.num }} + </template> + </el-table-column> + <el-table-column label="娴佺▼鐘舵€�" prop="state"/> + <el-table-column label="椤圭洰绾у埆" prop="levelName" v-if="checkInfo.identification == '1' ? false : true"/> + <el-table-column label="椤圭洰鍚嶇О" prop="name" width="280" > + <template #default="scope"> + <div v-if="(scope.row.projectIdentification == false)" style="font-weight: 600; color: #999999;"> + {{ makeName(scope.row.name, scope.row.level) }} + </div> + <div v-if="scope.row.projectIdentification"> + <a @click="seeView(scope.row)" style="color: #409EFF;">{{ makeName(scope.row.name, scope.row.level) }}</a> + </div> + </template> + </el-table-column> <el-table-column label="璐熻矗浜哄鍚�" prop="projectLeaderName" /> <el-table-column label="鐢虫姤鍗曚綅" prop="departmentName" /> <el-table-column label="褰掑彛绠$悊閮ㄩ棬" prop="guiKouName" /> @@ -89,31 +99,12 @@ {{ moneyFormat(scope.row.quotaMoney, 2, ',') }} </template> </el-table-column> - <el-table-column label="椤圭洰鐘舵€�" prop="projectState" > + <el-table-column label="椤圭洰鐘舵€�" prop="projectState"> <template #default="scope"> <span>{{ scope.row.projectState === 0 ? '-' : scope.row.projectState === 1 ? '鍦ㄥ缓' : scope.row.projectState === 2 ? '涓' : '瀹岀粨'}}</span> </template> </el-table-column> - <el-table-column label="鎿嶄綔" width="200px" align="center"> - <template #default="scope"> - <el-form> - <el-button type="primary" plain @click="seeView(scope.row)" - >鏌ョ湅</el-button - > - <!-- <el-button type="primary" plain @click="changeState(scope.row.id)" - >杩涘叆瀹岀粨搴�</el-button - > --> - </el-form> - </template> - </el-table-column> </el-table> - <Pagination - v-show="departInfo.total > 0" - :total="departInfo.total" - v-model:page="checkInfo.pageIndex" - v-model:limit="checkInfo.pageSize" - @pagination="getDepartPageInfo" - /> </el-card> </div> </template> @@ -137,8 +128,6 @@ export default { year: sessionStorage.getItem('year'), //骞翠唤 projectName: '', //椤圭洰鍚嶇О departmentCode: '', //椤圭洰搴� - pageIndex: 1, - pageSize: 10, declarationStateGzy: '1', //锛�0锛氱敵鎶ュ簱锛�1锛氬偍澶囧簱锛�2锛氬畬缁撳簱锛� projectState: [0,1], level: '' @@ -208,7 +197,7 @@ export default { // } }; const getDepartPageInfo = () => { - ProjectLibrary.listProjectLibraryGzy(state.checkInfo).then(res => { + ProjectLibrary.listProjectLibraryGzyChange(state.checkInfo).then(res => { state.departInfo.tableData = res.data; state.departInfo.total = res.total; // console.log(state.departInfo,'1234') @@ -303,6 +292,16 @@ export default { ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒'); } }; + const makeName = (name, level) => { + console.log('name', name, level); + for (let i = 1; i < level; i++) { + name = '\xa0\xa0\xa0\xa0' + name; + } + return name + }; + const selectable = (row) => { + return row.projectIdentification + } return { ...toRefs(state), getDepartPageInfoFirst, @@ -321,7 +320,9 @@ export default { onChushi, onZaijian, onZhongzhi, - onWanjie + onWanjie, + makeName, + selectable }; } }; diff --git a/WebSite/src/views/main/project-library/reserve/components/ListOld.vue b/WebSite/src/views/main/project-library/reserve/components/ListOld.vue new file mode 100644 index 00000000..3ebdb3b8 --- /dev/null +++ b/WebSite/src/views/main/project-library/reserve/components/ListOld.vue @@ -0,0 +1,330 @@ +<template> + <div> + <el-card> + <el-row :gutter="20"> + <el-col :span="6"> + <el-date-picker + v-model="checkInfo.year" + :editable="false" + type="year" + @change="setTime" + placeholder="閫夋嫨骞�" + > + </el-date-picker> + </el-col> + <!-- <el-col :span="6"> + <el-input + v-model="checkInfo.projectType" + placeholder="璇疯緭鍏ラ」鐩被鍨�" + ></el-input> + </el-col> --> + <el-col :span="6"> + <el-input + v-model="checkInfo.projectName" + placeholder="璇疯緭鍏ラ」鐩悕绉�" + ></el-input> + </el-col> + <el-col :span="6"> + <el-select + filterable + clearable + v-model="checkInfo.departmentCode" + placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" + > + <el-option + v-for="(v, index) in deptList" + :key="index" + :label="v.name" + :value="v.code" + ></el-option> + </el-select> + </el-col> + </el-row> + <el-row class="mtop20" :gutter="20"> + <el-col :span="6"> + <el-select v-model="checkInfo.level" placeholder="璇疯緭鍏ラ」鐩骇鍒�" clearable> + <el-option label="涓夌骇椤圭洰" value="3"></el-option> + <el-option label="鍥涚骇椤圭洰" value="4"></el-option> + </el-select> + </el-col> + <el-col :span="12"> + <el-button plain @click="getDepartPageInfoFirst">鏌ヨ</el-button> + <el-button type="primary" plain @click="onChushi">鍒濆鍖栭」鐩姸鎬�</el-button> + <el-button type="primary" plain @click="onZaijian">鍦ㄥ缓椤圭洰</el-button> + <el-button type="primary" plain @click="onZhongzhi">涓椤圭洰</el-button> + <el-button type="primary" plain @click="onWanjie">瀹岀粨椤圭洰</el-button> + </el-col> + </el-row> + </el-card> + <el-card class="mtop20"> + <el-table + stripe + :data="departInfo.tableData" + style="width: 100%" + ref="multipleTable" + class="mtop20" + fit + @selection-change="handleSelectionChange" + > + <el-table-column type="selection" width="55" align="center" /> + <el-table-column type="index" width="55" align="center" label="搴忓彿" /> + <el-table-column label="娴佺▼鐘舵€�" prop="state" /> + <el-table-column label="椤圭洰绾у埆" prop="level" /> + <el-table-column label="椤圭洰鍚嶇О" prop="projectName" /> + <!-- <el-table-column label="椤圭洰绫诲瀷" prop="projectType" /> --> + <!-- <el-table-column label="閮ㄩ棬鍚嶇О" prop="departmentName" /> --> + <!-- <el-table-column label="閮ㄩ棬缂栧彿" prop="departmentCode" /> --> + <!-- <el-table-column label="璐熻矗浜虹紪鍙�" prop="projectLeaderCode" /> --> + <el-table-column label="璐熻矗浜哄鍚�" prop="projectLeaderName" /> + <el-table-column label="鐢虫姤鍗曚綅" prop="departmentName" /> + <el-table-column label="褰掑彛绠$悊閮ㄩ棬" prop="guiKouName" /> + <el-table-column label="娴佺▼鎵€鍦ㄥ矖骞村害" prop="year" /> + <el-table-column label="鐢虫姤閲戦" prop="totalMoney" align="right"> + <template #default="scope"> + {{ moneyFormat(scope.row.totalMoney, 2, ',') }} + </template> + </el-table-column> + <el-table-column label="涓嬭揪閲戦" prop="quotaMoney" align="right"> + <template #default="scope"> + {{ moneyFormat(scope.row.quotaMoney, 2, ',') }} + </template> + </el-table-column> + <el-table-column label="椤圭洰鐘舵€�" prop="projectState" > + <template #default="scope"> + <span>{{ scope.row.projectState === 0 ? '-' : scope.row.projectState === 1 ? '鍦ㄥ缓' : scope.row.projectState === 2 ? '涓' : '瀹岀粨'}}</span> + </template> + </el-table-column> + <el-table-column label="鎿嶄綔" width="200px" align="center"> + <template #default="scope"> + <el-form> + <el-button type="primary" plain @click="seeView(scope.row)" + >鏌ョ湅</el-button + > + <!-- <el-button type="primary" plain @click="changeState(scope.row.id)" + >杩涘叆瀹岀粨搴�</el-button + > --> + </el-form> + </template> + </el-table-column> + </el-table> + <Pagination + v-show="departInfo.total > 0" + :total="departInfo.total" + v-model:page="checkInfo.pageIndex" + v-model:limit="checkInfo.pageSize" + @pagination="getDepartPageInfo" + /> + </el-card> + </div> +</template> + +<script> +import { reactive, toRefs, onMounted, ref } from 'vue'; +import ProjectLibrary from '@/api/projectLibrary'; +import Moment from 'moment'; +import { moneyFormat } from '@/utils'; +import { ElMessage } from 'element-plus'; +export default { + setup(props, cxt) { + onMounted(() => { + getDepartPageInfo(); + getPlanTypeEnum(); + }); + const multipleTable = ref(null); + const state = reactive({ + deptList: [], + checkInfo: { + year: sessionStorage.getItem('year'), //骞翠唤 + projectName: '', //椤圭洰鍚嶇О + departmentCode: '', //椤圭洰搴� + pageIndex: 1, + pageSize: 10, + declarationStateGzy: '1', //锛�0锛氱敵鎶ュ簱锛�1锛氬偍澶囧簱锛�2锛氬畬缁撳簱锛� + projectState: [0,1], + level: '' + }, + departInfo: { + total: 0, + tableData: [] + }, + planInfo: [], + selectList: [] + }); + const getDepartPageInfoFirst = () => { + state.checkInfo.pageIndex = 1; + getDepartPageInfo(); + }; + const toDetail = row => { + cxt.emit('switch-page', 'Detail', true, row.id); + }; + // 鍒楄〃 + const queryDeptPage = () => { + ProjectLibrary.queryDeptPage({ pageIndex: 1, pageSize: 9999 }).then( + res => { + state.deptList = res.data; + } + ); + }; + const toOne = row => { + console.log('row', row); + // 0 杩涘叆 1 鍙栨秷 2 鏂囧瓧 + // if (row.oneUPState === 0) { + // ProjectLibrary.enterProjectPlanType1(row.id).then(res => { + // console.log('resrow', res); + // getDepartPageInfo(); + // }); + // } else if (row.oneUPState === 1) { + // if (index === 1) { + // cxt.emit('switch-page', 'Detail', true, row.oneUPBookID); + // } else { + // ProjectLibrary.cancelEnterProjectPlanType1(row.id).then(res => { + // console.log('res', res); + // getDepartPageInfo(); + // }); + // } + // } else { + cxt.emit('switch-page', 'Detail', true, row.oneUPBookID); + // } + }; + const toTwo = row => { + console.log('row', row); + // 0 杩涘叆 1 鍙栨秷 2 鏂囧瓧 + // if (row.twoUPState === 0) { + // ProjectLibrary.enterProjectPlanType2(row.id).then(res => { + // console.log('resrow', res); + // getDepartPageInfo(); + // }); + // } else if (row.twoUPState === 1) { + // if (index === 1) { + // cxt.emit('switch-page', 'Detail', true, row.twoUPBookID); + // } else { + // ProjectLibrary.cancelEnterProjectPlanType2(row.id).then(res => { + // console.log('res', res); + // getDepartPageInfo(); + // }); + // } + // } else { + cxt.emit('switch-page', 'Detail', true, row.twoUPBookID); + // } + }; + const getDepartPageInfo = () => { + ProjectLibrary.listProjectLibraryGzy(state.checkInfo).then(res => { + state.departInfo.tableData = res.data; + state.departInfo.total = res.total; + // console.log(state.departInfo,'1234') + }); + }; + const getPlanTypeEnum = () => { + ProjectLibrary.getPlanTypeEnum({}).then(res => { + state.planInfo = res.data; + }); + }; + const seeView = row => { + cxt.emit('switch-page', 'Detail', true, row.id); + }; + const setTime = () => { + state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY'); + }; + const changeState = id => { + ProjectLibrary.changeDeclarationStateById(id).then(() => { + ElMessage.success('杩涘叆瀹岀粨搴撴垚鍔�'); + getDepartPageInfo(); + }); + }; + queryDeptPage(); + const handleSelectionChange = (val) => { + state.selectList = val + } + // 鍒濆鍖栭」鐩姸鎬� + const onChushi = () => { + let idList = []; + if (state.selectList.length > 0) { + state.selectList.find(item => { + idList.push(item.id) + }) + ProjectLibrary.projectStateInit(idList).then((res) => { + if (res) { + ElMessage.success('鍒濆鍖栭」鐩姸鎬佹垚鍔�'); + getDepartPageInfo(); + } + }) + } else { + ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒'); + } + }; + // 鍦ㄥ缓椤圭洰 + const onZaijian = () => { + let idList = []; + if (state.selectList.length > 0) { + state.selectList.find(item => { + idList.push(item.id) + }) + ProjectLibrary.projectStateStart(idList).then((res) => { + if (res) { + ElMessage.success('鍦ㄥ缓椤圭洰鎴愬姛'); + getDepartPageInfo(); + } + }) + } else { + ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒'); + } + }; + // 涓椤圭洰 + const onZhongzhi = () => { + let idList = []; + if (state.selectList.length > 0) { + state.selectList.find(item => { + idList.push(item.id) + }) + ProjectLibrary.projectStateBreak(idList).then((res) => { + if (res) { + ElMessage.success('涓椤圭洰鎴愬姛'); + getDepartPageInfo(); + } + }) + } else { + ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒'); + } + }; + // 瀹岀粨椤圭洰 + const onWanjie = () => { + let idList = []; + if (state.selectList.length > 0) { + state.selectList.find(item => { + idList.push(item.id) + }) + ProjectLibrary.projectStateSuccess(idList).then((res) => { + if (res) { + ElMessage.success('瀹岀粨椤圭洰鎴愬姛'); + getDepartPageInfo(); + } + }) + } else { + ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒'); + } + }; + return { + ...toRefs(state), + getDepartPageInfoFirst, + getPlanTypeEnum, + multipleTable, + seeView, + setTime, + getDepartPageInfo, + queryDeptPage, + toDetail, + toOne, + moneyFormat, + toTwo, + changeState, + handleSelectionChange, + onChushi, + onZaijian, + onZhongzhi, + onWanjie + }; + } +}; +</script> + +<style></style> diff --git a/WebSite/src/views/performance/declaration.vue b/WebSite/src/views/performance/declaration.vue index ae891672..993f6ab7 100644 --- a/WebSite/src/views/performance/declaration.vue +++ b/WebSite/src/views/performance/declaration.vue @@ -6,6 +6,7 @@ @handleSave="handleSave" @handleSubmit="handleSubmit" @handleReturn="handleReturn" + @handleCancel="handleCancel" :flowInfo="flowInfo" ></Flow> </el-card> @@ -44,9 +45,9 @@ <el-form-item> <el-input v-model="scope.row.amount1" - v-if="!scope.row.amount1" + onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')" + @blur="changeInput(scope.row)" ></el-input> - <div v-if="scope.row.amount1">{{ scope.row.amount1 }}</div> </el-form-item> </template> </el-table-column> @@ -55,9 +56,9 @@ <el-form-item> <el-input v-model="scope.row.amount2" - v-if="!scope.row.amount2" + onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')" + @blur="changeInput(scope.row)" ></el-input> - <div v-if="scope.row.amount2">{{ scope.row.amount2 }}</div> </el-form-item> </template> </el-table-column> @@ -66,9 +67,9 @@ <el-form-item> <el-input v-model="scope.row.amount3" - v-if="!scope.row.amount3" + onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')" + @blur="changeInput(scope.row)" ></el-input> - <div v-if="scope.row.amount3">{{ scope.row.amount3 }}</div> </el-form-item> </template> </el-table-column> @@ -77,9 +78,9 @@ <el-form-item> <el-input v-model="scope.row.amount4" - v-if="!scope.row.amount4" + onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')" + @blur="changeInput(scope.row)" ></el-input> - <div v-if="scope.row.amount4">{{ scope.row.amount4 }}</div> </el-form-item> </template> </el-table-column> @@ -88,9 +89,9 @@ <el-form-item> <el-input v-model="scope.row.amount5" - v-if="!scope.row.amount5" + onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')" + @blur="changeInput(scope.row)" ></el-input> - <div v-if="scope.row.amount5">{{ scope.row.amount5 }}</div> </el-form-item> </template> </el-table-column> @@ -99,9 +100,7 @@ <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> @@ -297,6 +296,7 @@ <script> import Api from '@/api'; +import { ElMessage } from 'element-plus'; export default { components: {}, props: { @@ -444,7 +444,7 @@ export default { } }; }, - async created() { + created() { if (this.$route.query.type) { Api.queryTargetPlan( this.$route.query.parentId, @@ -452,7 +452,7 @@ export default { ).then(res => { this.detail = res.data[0]; this.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList); - this.tableData = this.detail.extendFieldList.achievementslist + this.tableData = this.detail.extendFieldList.achievementslist; this.flowInfo = res.data[0].flowCanShowOut; }); } @@ -460,15 +460,15 @@ export default { this.detail.fundsProjectName = this.$route.query.projectName; this.detail.schoolProjectName = this.$route.query.ownDeptName; this.detail.extendFieldList.schoolfundsdep = this.$route.query.ownDeptName; - this.getlist(); + this.getlist(); } }, computed: {}, methods: { - getlist() { + getlist() { Api.queryTargetByPlanId(this.$route.query.parentId).then(res => { - this.detail.extendFieldList.travelOnBusinessDetail = res.data + this.detail.extendFieldList.travelOnBusinessDetail = res.data; }); }, handleBack() { @@ -496,6 +496,7 @@ export default { this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList); Api.saveTargetPlanOwn(this.detail).then(res => { console.log(res); + ElMessage.success('淇濆瓨鎴愬姛'); this.getformlist(); }); }, @@ -506,14 +507,46 @@ export default { console.log(this.detail.extendFieldList, '99999'); }); }, - handleSubmit() { - this.$emit('handleSubmit'); + handleSubmit(flowOutput) { + console.log('flowOutput', flowOutput); + let data = { + id: this.$route.query.parentId, + type: '璺熻釜', + remake: flowOutput.remake, + nodeIds: [flowOutput.nodeIds] + }; + Api.submitTarget(data).then(res => { + console.log('res', res); + ElMessage.success('鎻愪氦鎴愬姛'); + this.getlist(); + this.getformlist(); + }); }, - handleReturn() { - this.$emit('handleReturn'); + handleReturn(flowOutput) { + console.log('1'); + Api.rollBackTarget({ + id: this.$route.query.parentId, + type: '璺熻釜', + remake: flowOutput.remake, + nodeIds: [flowOutput.nodeIds] + }).then((res) => { + console.log('res', res); + ElMessage.success('鍥為€€鎴愬姛'); + this.getlist(); + this.getformlist(); + }) }, handleCancel() { - this.$emit('handleCancel'); + console.log('2'); + Api.recallTarget({ + id: this.$route.query.parentId, + type: '璺熻釜' + }).then((res) => { + console.log('res', res); + ElMessage.success('鍥炴挙鎴愬姛'); + this.getlist(); + this.getformlist(); + }) }, addPeopleInfo() { this.detail.extendFieldList.travelOnBusinessDetail.push({}); @@ -552,6 +585,17 @@ export default { }, deletePelpleRow(index) { this.detail.extendFieldList.travelOnBusinessDetail.splice(index, 1); + }, + changeInput(row) { + console.log('riw', row); + // let regs = /^(0|([1-9]\d*))(\.\d{1,2})?$/; + let regs = /^\d*\.{0,1}\d{0,2}$/; + if (regs.test(row.amount1)) { + return row.amount1 + } else { + // row.amount1 = Math.floor(row.amount1 * 100) /100 + return row.amount1 + } } } }; diff --git a/WebSite/src/views/performance/declarationview.vue b/WebSite/src/views/performance/declarationview.vue index a228de68..f666b027 100644 --- a/WebSite/src/views/performance/declarationview.vue +++ b/WebSite/src/views/performance/declarationview.vue @@ -104,14 +104,9 @@ prop="year" align="center" ></el-table-column> - <el-table-column - label="椤圭洰绫诲埆" - prop="projectType" - align="center" - ></el-table-column> <el-table-column label="椤圭洰绫诲瀷" - prop="projectTypes" + prop="projectType" align="center" ></el-table-column> <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center"> @@ -295,13 +290,12 @@ export default { this.getfollowlist(this.formData); }, //鍒犻櫎 - remove(row) { this.$router.push({ path: '/i/performance/declaration', query: { parentId: row.id, - type: '鑷瘎' + type: '璺熻釜' } }); }, @@ -311,7 +305,8 @@ export default { query: { parentId: row.id, projectName: row.projectName, - ownDeptName: row.ownDeptName + ownDeptName: row.ownDeptName, + type: '璺熻釜' } }); }, diff --git a/WebSite/src/views/performance/declarationwatchview.vue b/WebSite/src/views/performance/declarationwatchview.vue index ff590537..55dcefde 100644 --- a/WebSite/src/views/performance/declarationwatchview.vue +++ b/WebSite/src/views/performance/declarationwatchview.vue @@ -104,14 +104,9 @@ prop="year" align="center" ></el-table-column> - <el-table-column - label="椤圭洰绫诲埆" - prop="projectType" - align="center" - ></el-table-column> <el-table-column label="椤圭洰绫诲瀷" - prop="projectTypes" + prop="projectType" align="center" ></el-table-column> <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center"> diff --git a/WebSite/src/views/performance/evaluation.vue b/WebSite/src/views/performance/evaluation.vue index a85f0d56..1a3f7154 100644 --- a/WebSite/src/views/performance/evaluation.vue +++ b/WebSite/src/views/performance/evaluation.vue @@ -6,6 +6,7 @@ @handleSave="handleSave" @handleSubmit="handleSubmit" @handleReturn="handleReturn" + @handleCancel="handleCancel" :flowInfo="flowInfo" ></Flow> </el-card> @@ -50,9 +51,9 @@ <el-form-item> <el-input v-model="scope.row.amount1" - v-if="!scope.row.amount1" + onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')" + @blur="changeInput(scope.row)" ></el-input> - <div v-if="scope.row.amount1">{{ scope.row.amount1 }}</div> </el-form-item> </template> </el-table-column> @@ -61,9 +62,9 @@ <el-form-item> <el-input v-model="scope.row.amount2" - v-if="!scope.row.amount2" + onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')" + @blur="changeInput(scope.row)" ></el-input> - <div v-if="scope.row.amount2">{{ scope.row.amount2 }}</div> </el-form-item> </template> </el-table-column> @@ -72,9 +73,9 @@ <el-form-item> <el-input v-model="scope.row.amount3" - v-if="!scope.row.amount3" + onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')" + @blur="changeInput(scope.row)" ></el-input> - <div v-if="scope.row.amount3">{{ scope.row.amount3 }}</div> </el-form-item> </template> </el-table-column> @@ -83,9 +84,9 @@ <el-form-item> <el-input v-model="scope.row.amount4" - v-if="!scope.row.amount4" + onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')" + @blur="changeInput(scope.row)" ></el-input> - <div v-if="scope.row.amount4">{{ scope.row.amount4 }}</div> </el-form-item> </template> </el-table-column> @@ -95,9 +96,7 @@ <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> @@ -251,6 +250,7 @@ <script> import Api from '@/api'; +import { ElMessage } from 'element-plus'; export default { components: {}, props: { @@ -455,14 +455,44 @@ export default { this.getformlist(); }); }, - handleSubmit() { - this.$emit('handleSubmit'); + handleSubmit(flowOutput) { + let data = { + id: this.$route.query.parentId, + type: '鑷瘎', + remake: flowOutput.remake, + nodeIds: [flowOutput.nodeIds] + }; + // this.$emit('handleSubmit'); + Api.submitTarget(data).then(res => { + console.log('res', res); + ElMessage.success('鎻愪氦鎴愬姛'); + this.getlist(); + this.getformlist(); + }); }, - handleReturn() { - this.$emit('handleReturn'); + handleReturn(flowOutput) { + Api.rollBackTarget({ + id: this.$route.query.parentId, + type: '鑷瘎', + remake: flowOutput.remake, + nodeIds: [flowOutput.nodeIds] + }).then((res) => { + console.log('res', res); + ElMessage.success('鍥為€€鎴愬姛'); + this.getlist(); + this.getformlist(); + }) }, handleCancel() { - this.$emit('handleCancel'); + Api.recallTarget({ + id: this.$route.query.parentId, + type: '鑷瘎' + }).then((res) => { + console.log('res', res); + ElMessage.success('鍥炴挙鎴愬姛'); + this.getlist(); + this.getformlist(); + }) }, addPeopleInfo() { this.detail.extendFieldList.travelOnBusinessDetail.push({}); @@ -510,6 +540,16 @@ export default { }, deletePelpleRow(index) { this.detail.extendFieldList.travelOnBusinessDetail.splice(index, 1); + }, + changeInput(row) { + console.log('riw', row); + let regs = /^(0|([1-9]\d*))(\.\d{1,2})?$/; + if (regs.test(row.amount1)) { + return row.amount1 + } else { + row.amount1 = Math.floor(row.amount1 * 100) /100 + return row.amount1 + } } } }; diff --git a/WebSite/src/views/performance/evaluationview.vue b/WebSite/src/views/performance/evaluationview.vue index 125776d5..06be70e3 100644 --- a/WebSite/src/views/performance/evaluationview.vue +++ b/WebSite/src/views/performance/evaluationview.vue @@ -105,14 +105,9 @@ prop="year" align="center" ></el-table-column> - <el-table-column - label="椤圭洰绫诲埆" - prop="projectType" - align="center" - ></el-table-column> <el-table-column label="椤圭洰绫诲瀷" - prop="projectTypes" + prop="projectType" align="center" ></el-table-column> <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center"> diff --git a/WebSite/src/views/performance/evaluationwatchview.vue b/WebSite/src/views/performance/evaluationwatchview.vue index 41ac8d5a..4b127674 100644 --- a/WebSite/src/views/performance/evaluationwatchview.vue +++ b/WebSite/src/views/performance/evaluationwatchview.vue @@ -105,14 +105,9 @@ prop="year" align="center" ></el-table-column> - <el-table-column - label="椤圭洰绫诲埆" - prop="projectType" - align="center" - ></el-table-column> <el-table-column label="椤圭洰绫诲瀷" - prop="projectTypes" + prop="projectType" align="center" ></el-table-column> <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center"> diff --git a/WebSite/src/views/performance/rectification.vue b/WebSite/src/views/performance/rectification.vue index b7b0cf47..7c848c37 100644 --- a/WebSite/src/views/performance/rectification.vue +++ b/WebSite/src/views/performance/rectification.vue @@ -6,6 +6,7 @@ @handleSave="handleSave" @handleSubmit="handleSubmit" @handleReturn="handleReturn" + @handleCancel="handleCancel" :flowInfo="flowInfo" ></Flow> </el-card> @@ -106,6 +107,7 @@ <script> import Api from '@/api'; +import { ElMessage } from 'element-plus'; export default { components: {}, props: { @@ -324,14 +326,40 @@ export default { this.getformlist(); }); }, - handleSubmit() { - this.$emit('handleSubmit'); + handleSubmit(flowOutput) { + let data = { + id: this.$route.query.parentId, + type: '鏁存敼', + remake: flowOutput.remake, + nodeIds: [flowOutput.nodeIds] + }; + Api.submitTarget(data).then(res => { + console.log('res', res); + ElMessage.success('鎻愪氦鎴愬姛'); + this.getformlist(); + }); }, - handleReturn() { - this.$emit('handleReturn'); + handleReturn(flowOutput) { + Api.rollBackTarget({ + id: this.$route.query.parentId, + type: '鏁存敼', + remake: flowOutput.remake, + nodeIds: [flowOutput.nodeIds] + }).then((res) => { + console.log('res', res); + ElMessage.success('鍥為€€鎴愬姛'); + this.getformlist(); + }) }, handleCancel() { - this.$emit('handleCancel'); + Api.recallTarget({ + id: this.$route.query.parentId, + type: '鏁存敼' + }).then((res) => { + console.log('res', res); + ElMessage.success('鍥炴挙鎴愬姛'); + this.getformlist(); + }) }, addPeopleInfo() { this.detail.extendFieldList.fundspeople = this.fundspeople; diff --git a/WebSite/src/views/performance/rectificationview.vue b/WebSite/src/views/performance/rectificationview.vue index 5e448c2d..883783a0 100644 --- a/WebSite/src/views/performance/rectificationview.vue +++ b/WebSite/src/views/performance/rectificationview.vue @@ -105,14 +105,9 @@ prop="year" align="center" ></el-table-column> - <el-table-column - label="椤圭洰绫诲埆" - prop="projectType" - align="center" - ></el-table-column> <el-table-column label="椤圭洰绫诲瀷" - prop="projectTypes" + prop="projectType" align="center" ></el-table-column> <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center"> diff --git a/WebSite/src/views/performance/rectificationwatchview.vue b/WebSite/src/views/performance/rectificationwatchview.vue index 379902e9..ef4c6639 100644 --- a/WebSite/src/views/performance/rectificationwatchview.vue +++ b/WebSite/src/views/performance/rectificationwatchview.vue @@ -105,14 +105,9 @@ prop="year" align="center" ></el-table-column> - <el-table-column - label="椤圭洰绫诲埆" - prop="projectType" - align="center" - ></el-table-column> <el-table-column label="椤圭洰绫诲瀷" - prop="projectTypes" + prop="projectType" align="center" ></el-table-column> <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center"> 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 3f4f0b27..c60bff94 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 @@ -8,7 +8,7 @@ </el-col> <el-col :span="6"> <el-button @click="getPersonList" plain>鏌ヨ</el-button> - <el-button @click="onReport" plain>瀵煎嚭</el-button> + <!-- <el-button @click="onReport" plain>瀵煎嚭</el-button> --> </el-col> </el-row> </el-card> 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 08c31032..bb6a7892 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 @@ -8,7 +8,7 @@ </el-col> <el-col :span="6"> <el-button @click="getPersonList" plain>鏌ヨ</el-button> - <el-button @click="onReport" plain>瀵煎嚭</el-button> + <!-- <el-button @click="onReport" plain>瀵煎嚭</el-button> --> </el-col> </el-row> </el-card> -- GitLab From 8421d3c602d0ae8b06c2e1c079c1b6ef21ded492 Mon Sep 17 00:00:00 2001 From: lshwy817 <lshwy817@163.com> Date: Fri, 2 Dec 2022 20:00:20 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebSite/src/views/main/basicSetting/match/index.vue | 7 ++++--- .../main/project-library/declare/components/List.vue | 1 - WebSite/src/views/performance/declaration.vue | 6 +++--- WebSite/src/views/performance/declarationview.vue | 2 +- .../src/views/performance/declarationwatchview.vue | 2 +- WebSite/src/views/performance/evaluation.vue | 6 +++--- WebSite/src/views/performance/evaluationview.vue | 2 +- WebSite/src/views/performance/evaluationwatchview.vue | 2 +- WebSite/src/views/performance/rectification.vue | 5 +++-- WebSite/src/views/performance/rectificationview.vue | 4 ++-- .../src/views/performance/rectificationwatchview.vue | 4 ++-- .../src/views/yo-common/ProjectFundApply/index.vue | 11 +++++++++++ 12 files changed, 32 insertions(+), 20 deletions(-) diff --git a/WebSite/src/views/main/basicSetting/match/index.vue b/WebSite/src/views/main/basicSetting/match/index.vue index 3f402614..5d52970c 100644 --- a/WebSite/src/views/main/basicSetting/match/index.vue +++ b/WebSite/src/views/main/basicSetting/match/index.vue @@ -134,13 +134,14 @@ export default { return item } }) - state.fundTemplateCmdList.push({ - limitName: newList.controlsName, + let fundTemplateCmdList = [] + fundTemplateCmdList.push({ + limitName: newList ? newList.controlsName : '', templateCode: state.titleText.templateCode, templateName: state.titleText.templateName, ...val }) - ProjectLibrary.saveFundTemplate(state.fundTemplateCmdList).then(() => { + ProjectLibrary.saveFundTemplate(fundTemplateCmdList).then(() => { ElMessage.success('淇濆瓨鎴愬姛'); queryList(); }) diff --git a/WebSite/src/views/main/project-library/declare/components/List.vue b/WebSite/src/views/main/project-library/declare/components/List.vue index e57d10fe..d1f35460 100644 --- a/WebSite/src/views/main/project-library/declare/components/List.vue +++ b/WebSite/src/views/main/project-library/declare/components/List.vue @@ -79,7 +79,6 @@ <el-table-column label="椤圭洰绾у埆" prop="levelName" - v-if="checkInfo.identification == '1' ? false : true" /> <el-table-column label="椤圭洰鍚嶇О" prop="name" width="280"> diff --git a/WebSite/src/views/performance/declaration.vue b/WebSite/src/views/performance/declaration.vue index 993f6ab7..ac23d591 100644 --- a/WebSite/src/views/performance/declaration.vue +++ b/WebSite/src/views/performance/declaration.vue @@ -490,7 +490,7 @@ export default { } return false; }, - handleSave() { + async handleSave() { this.detail.extendFieldList.achievementslist = this.tableData; this.detail.parentId = this.$route.query.parentId; this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList); @@ -507,8 +507,8 @@ export default { console.log(this.detail.extendFieldList, '99999'); }); }, - handleSubmit(flowOutput) { - console.log('flowOutput', flowOutput); + async handleSubmit(flowOutput) { + await this.handleSave(); let data = { id: this.$route.query.parentId, type: '璺熻釜', diff --git a/WebSite/src/views/performance/declarationview.vue b/WebSite/src/views/performance/declarationview.vue index f666b027..d17693d0 100644 --- a/WebSite/src/views/performance/declarationview.vue +++ b/WebSite/src/views/performance/declarationview.vue @@ -195,7 +195,7 @@ export default { dialogVisible: false, isShowForm: true, formData: { - year: '2022', + year: '2023', deptName: '', // ownDeptName: '', projectName: '', diff --git a/WebSite/src/views/performance/declarationwatchview.vue b/WebSite/src/views/performance/declarationwatchview.vue index 55dcefde..e55dc47b 100644 --- a/WebSite/src/views/performance/declarationwatchview.vue +++ b/WebSite/src/views/performance/declarationwatchview.vue @@ -195,7 +195,7 @@ export default { dialogVisible: false, isShowForm: true, formData: { - year: '2022', + year: '2023', deptName: '', // ownDeptName: '', projectName: '', diff --git a/WebSite/src/views/performance/evaluation.vue b/WebSite/src/views/performance/evaluation.vue index 1a3f7154..6fd4904a 100644 --- a/WebSite/src/views/performance/evaluation.vue +++ b/WebSite/src/views/performance/evaluation.vue @@ -446,7 +446,7 @@ export default { } return false; }, - handleSave() { + async handleSave() { this.detail.extendFieldList.achievementslist = this.tableData; this.detail.parentId = this.$route.query.parentId; this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList); @@ -455,14 +455,14 @@ export default { this.getformlist(); }); }, - handleSubmit(flowOutput) { + async handleSubmit(flowOutput) { + await this.handleSave(); let data = { id: this.$route.query.parentId, type: '鑷瘎', remake: flowOutput.remake, nodeIds: [flowOutput.nodeIds] }; - // this.$emit('handleSubmit'); Api.submitTarget(data).then(res => { console.log('res', res); ElMessage.success('鎻愪氦鎴愬姛'); diff --git a/WebSite/src/views/performance/evaluationview.vue b/WebSite/src/views/performance/evaluationview.vue index 06be70e3..ca07e592 100644 --- a/WebSite/src/views/performance/evaluationview.vue +++ b/WebSite/src/views/performance/evaluationview.vue @@ -196,7 +196,7 @@ export default { dialogVisible: false, isShowForm: true, formData: { - year: '2022', + year: '2023', deptName: '', ownDeptName: '', projectName: '', diff --git a/WebSite/src/views/performance/evaluationwatchview.vue b/WebSite/src/views/performance/evaluationwatchview.vue index 4b127674..c328f17f 100644 --- a/WebSite/src/views/performance/evaluationwatchview.vue +++ b/WebSite/src/views/performance/evaluationwatchview.vue @@ -196,7 +196,7 @@ export default { dialogVisible: false, isShowForm: true, formData: { - year: '2022', + year: '2023', deptName: '', ownDeptName: '', projectName: '', diff --git a/WebSite/src/views/performance/rectification.vue b/WebSite/src/views/performance/rectification.vue index 7c848c37..8336bddb 100644 --- a/WebSite/src/views/performance/rectification.vue +++ b/WebSite/src/views/performance/rectification.vue @@ -317,7 +317,7 @@ export default { } return false; }, - handleSave() { + async handleSave() { this.detail.extendFieldList.achievementslist = this.tableData; this.detail.parentId = this.$route.query.parentId; this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList); @@ -326,7 +326,8 @@ export default { this.getformlist(); }); }, - handleSubmit(flowOutput) { + async handleSubmit(flowOutput) { + await this.handleSave() let data = { id: this.$route.query.parentId, type: '鏁存敼', diff --git a/WebSite/src/views/performance/rectificationview.vue b/WebSite/src/views/performance/rectificationview.vue index 883783a0..c50357eb 100644 --- a/WebSite/src/views/performance/rectificationview.vue +++ b/WebSite/src/views/performance/rectificationview.vue @@ -196,7 +196,7 @@ export default { dialogVisible: false, isShowForm: true, formData: { - year: '2022', + year: '2023', deptName: '', ownDeptName: '', projectName: '', @@ -245,7 +245,7 @@ export default { dataCountProject: 0, multipleSelect: [], formSelect: { - year: '2022', + year: '2023', pageIndex: 1, pageSize: 10 } diff --git a/WebSite/src/views/performance/rectificationwatchview.vue b/WebSite/src/views/performance/rectificationwatchview.vue index ef4c6639..4bcf0b84 100644 --- a/WebSite/src/views/performance/rectificationwatchview.vue +++ b/WebSite/src/views/performance/rectificationwatchview.vue @@ -196,7 +196,7 @@ export default { dialogVisible: false, isShowForm: true, formData: { - year: '2022', + year: '2023', deptName: '', ownDeptName: '', projectName: '', @@ -245,7 +245,7 @@ export default { dataCountProject: 0, multipleSelect: [], formSelect: { - year: '2022', + year: '2023', pageIndex: 1, pageSize: 10 } diff --git a/WebSite/src/views/yo-common/ProjectFundApply/index.vue b/WebSite/src/views/yo-common/ProjectFundApply/index.vue index d9e39d92..322c0215 100644 --- a/WebSite/src/views/yo-common/ProjectFundApply/index.vue +++ b/WebSite/src/views/yo-common/ProjectFundApply/index.vue @@ -361,6 +361,17 @@ <template #header> 椤圭洰姒傝堪</template> <!-- 涓婃捣澶у --> <div class="formRef"> + <el-form-item + label="1銆侀」鐩珛椤逛緷鎹�" + prop="summary.basis" + label-width="200px" + style="display: none;" + > + <el-input + v-model="applyInfo.summary.basis" + type="textarea" + ></el-input> + </el-form-item> <el-form-item label="1銆侀」鐩珛椤逛緷鎹�" prop="summary.basis" -- GitLab From ee42f64f42ad66cfd0bfdb9d84eff83473e81554 Mon Sep 17 00:00:00 2001 From: lshwy817 <lshwy817@163.com> Date: Fri, 2 Dec 2022 22:12:45 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebSite/src/views/performance/declaration.vue | 50 +++++++++++-------- .../src/views/performance/declarationview.vue | 1 - WebSite/src/views/performance/evaluation.vue | 48 ++++++++++-------- .../src/views/performance/rectification.vue | 38 +++++++------- 4 files changed, 75 insertions(+), 62 deletions(-) diff --git a/WebSite/src/views/performance/declaration.vue b/WebSite/src/views/performance/declaration.vue index ac23d591..07ae290c 100644 --- a/WebSite/src/views/performance/declaration.vue +++ b/WebSite/src/views/performance/declaration.vue @@ -322,8 +322,8 @@ export default { value: '绉戠爺澶勫鏍�' } ], - user: '绯荤粺绠$悊鍛�', - state: '璐熻矗浜鸿ˉ鍏�', + user: '', + state: '', flow: [ { actionTime: '2020骞�9鏈�11鏃�', @@ -356,13 +356,13 @@ export default { ], btnStates: { isShowSave: true, - isShowSubmit: true, - isShowReject: true, + isShowSubmit: this.$route.query.projectName ? false : true, + isShowReject: this.$route.query.projectName ? false : true, isShowRevoke: false, - isShowChart: true, - isShowHistory: true, - isShowUser: true, - isShowState: true, + isShowChart: false, + isShowHistory: false, + isShowUser: false, + isShowState: false, isShowCancel: false } }, @@ -467,8 +467,9 @@ export default { computed: {}, methods: { getlist() { + const that = this; Api.queryTargetByPlanId(this.$route.query.parentId).then(res => { - this.detail.extendFieldList.travelOnBusinessDetail = res.data; + that.detail.extendFieldList.travelOnBusinessDetail = res.data; }); }, handleBack() { @@ -494,20 +495,23 @@ export default { 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); - ElMessage.success('淇濆瓨鎴愬姛'); - this.getformlist(); - }); + await Api.saveTargetPlanOwn(this.detail); + this.detail.extendFieldList = JSON.parse(this.detail.extendFieldList); + ElMessage.success('淇濆瓨鎴愬姛'); + this.getlist(); + this.getformlist(); }, getformlist() { + const that = this; Api.queryTargetPlan(this.$route.query.parentId, '璺熻釜').then(res => { - this.detail = res.data[0]; - this.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList); + that.detail = res.data[0]; + that.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList); + that.flowInfo = res.data[0].flowCanShowOut; console.log(this.detail.extendFieldList, '99999'); }); }, async handleSubmit(flowOutput) { + const that = this; await this.handleSave(); let data = { id: this.$route.query.parentId, @@ -518,12 +522,13 @@ export default { Api.submitTarget(data).then(res => { console.log('res', res); ElMessage.success('鎻愪氦鎴愬姛'); - this.getlist(); - this.getformlist(); + that.getlist(); + that.getformlist(); }); }, handleReturn(flowOutput) { console.log('1'); + const that = this; Api.rollBackTarget({ id: this.$route.query.parentId, type: '璺熻釜', @@ -532,20 +537,21 @@ export default { }).then((res) => { console.log('res', res); ElMessage.success('鍥為€€鎴愬姛'); - this.getlist(); - this.getformlist(); + that.getlist(); + that.getformlist(); }) }, handleCancel() { console.log('2'); + const that = this; Api.recallTarget({ id: this.$route.query.parentId, type: '璺熻釜' }).then((res) => { console.log('res', res); ElMessage.success('鍥炴挙鎴愬姛'); - this.getlist(); - this.getformlist(); + that.getlist(); + that.getformlist(); }) }, addPeopleInfo() { diff --git a/WebSite/src/views/performance/declarationview.vue b/WebSite/src/views/performance/declarationview.vue index d17693d0..b615477e 100644 --- a/WebSite/src/views/performance/declarationview.vue +++ b/WebSite/src/views/performance/declarationview.vue @@ -306,7 +306,6 @@ export default { parentId: row.id, projectName: row.projectName, ownDeptName: row.ownDeptName, - type: '璺熻釜' } }); }, diff --git a/WebSite/src/views/performance/evaluation.vue b/WebSite/src/views/performance/evaluation.vue index 6fd4904a..82324af1 100644 --- a/WebSite/src/views/performance/evaluation.vue +++ b/WebSite/src/views/performance/evaluation.vue @@ -276,8 +276,8 @@ export default { value: '绉戠爺澶勫鏍�' } ], - user: '绯荤粺绠$悊鍛�', - state: '璐熻矗浜鸿ˉ鍏�', + user: '', + state: '', flow: [ { actionTime: '2020骞�9鏈�11鏃�', @@ -310,13 +310,13 @@ export default { ], btnStates: { isShowSave: true, - isShowSubmit: true, - isShowReject: true, + isShowSubmit: this.$route.query.projectName ? false : true, + isShowReject: this.$route.query.projectName ? false : true, isShowRevoke: false, - isShowChart: true, - isShowHistory: true, - isShowUser: true, - isShowState: true, + isShowChart: false, + isShowHistory: false, + isShowUser: false, + isShowState: false, isShowCancel: false } }, @@ -423,8 +423,9 @@ export default { computed: {}, methods: { getlist() { + const that = this; Api.queryTargetByPlanId(this.$route.query.parentId).then(res => { - this.detail.extendFieldList.travelOnBusinessDetail = res.data; + that.detail.extendFieldList.travelOnBusinessDetail = res.data; }); }, handleBack() { @@ -450,12 +451,12 @@ export default { 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(); - }); + await Api.saveTargetPlanSelf(this.detail); + ElMessage.success('淇濆瓨鎴愬姛'); + this.getformlist(); }, async handleSubmit(flowOutput) { + const that = this; await this.handleSave(); let data = { id: this.$route.query.parentId, @@ -466,11 +467,12 @@ export default { Api.submitTarget(data).then(res => { console.log('res', res); ElMessage.success('鎻愪氦鎴愬姛'); - this.getlist(); - this.getformlist(); + that.getlist(); + that.getformlist(); }); }, handleReturn(flowOutput) { + const that = this; Api.rollBackTarget({ id: this.$route.query.parentId, type: '鑷瘎', @@ -479,19 +481,20 @@ export default { }).then((res) => { console.log('res', res); ElMessage.success('鍥為€€鎴愬姛'); - this.getlist(); - this.getformlist(); + that.getlist(); + that.getformlist(); }) }, handleCancel() { + const that = this; Api.recallTarget({ id: this.$route.query.parentId, type: '鑷瘎' }).then((res) => { console.log('res', res); ElMessage.success('鍥炴挙鎴愬姛'); - this.getlist(); - this.getformlist(); + that.getlist(); + that.getformlist(); }) }, addPeopleInfo() { @@ -512,10 +515,11 @@ export default { // console.log('uploadFile'); }, getformlist() { + const that = this; 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; + that.detail = res.data[0]; + that.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList); + that.flowInfo = res.data[0].flowCanShowOut; console.log(this.detail.extendFieldList, '99999'); }); diff --git a/WebSite/src/views/performance/rectification.vue b/WebSite/src/views/performance/rectification.vue index 8336bddb..26c7801a 100644 --- a/WebSite/src/views/performance/rectification.vue +++ b/WebSite/src/views/performance/rectification.vue @@ -133,8 +133,8 @@ export default { value: '绉戠爺澶勫鏍�' } ], - user: '绯荤粺绠$悊鍛�', - state: '璐熻矗浜鸿ˉ鍏�', + user: '', + state: '', flow: [ { actionTime: '2020骞�9鏈�11鏃�', @@ -167,13 +167,13 @@ export default { ], btnStates: { isShowSave: true, - isShowSubmit: true, - isShowReject: true, + isShowSubmit: this.$route.query.projectName ? false : true, + isShowReject: this.$route.query.projectName ? false : true, isShowRevoke: false, - isShowChart: true, - isShowHistory: true, - isShowUser: true, - isShowState: true, + isShowChart: false, + isShowHistory: false, + isShowUser: false, + isShowState: false, isShowCancel: false } }, @@ -292,9 +292,11 @@ export default { computed: {}, methods: { getformlist() { + const that = this; Api.queryTargetPlan(this.$route.query.parentId, '鏁存敼').then(res => { - this.detail = res.data[0]; - this.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList); + that.detail = res.data[0]; + that.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList); + that.flowInfo = res.data[0].flowCanShowOut; console.log(this.detail.extendFieldList, '99999'); }); }, @@ -321,12 +323,12 @@ export default { 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(); - }); + await Api.saveTargetPlanReform(this.detail); + ElMessage.success('淇濆瓨鎴愬姛'); + this.getformlist(); }, async handleSubmit(flowOutput) { + const that = this; await this.handleSave() let data = { id: this.$route.query.parentId, @@ -337,10 +339,11 @@ export default { Api.submitTarget(data).then(res => { console.log('res', res); ElMessage.success('鎻愪氦鎴愬姛'); - this.getformlist(); + that.getformlist(); }); }, handleReturn(flowOutput) { + const that = this; Api.rollBackTarget({ id: this.$route.query.parentId, type: '鏁存敼', @@ -349,17 +352,18 @@ export default { }).then((res) => { console.log('res', res); ElMessage.success('鍥為€€鎴愬姛'); - this.getformlist(); + that.getformlist(); }) }, handleCancel() { + const that = this; Api.recallTarget({ id: this.$route.query.parentId, type: '鏁存敼' }).then((res) => { console.log('res', res); ElMessage.success('鍥炴挙鎴愬姛'); - this.getformlist(); + that.getformlist(); }) }, addPeopleInfo() { -- GitLab