From 84a14c24edf92f7072e50b51ee37143d658ecfd4 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 11 三月 2025 14:28:09 +0800 Subject: [PATCH] 项目库展示总年度投资金额 --- src/views/engineering/index.vue | 221 +++++++++++++++++++++++++++++-------------------------- 1 files changed, 116 insertions(+), 105 deletions(-) diff --git a/src/views/engineering/index.vue b/src/views/engineering/index.vue index 808b6c7..1576867 100644 --- a/src/views/engineering/index.vue +++ b/src/views/engineering/index.vue @@ -1,26 +1,26 @@ <template> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> - <el-form-item label="宸ョ▼鍚嶇О" prop="projectName"> + <el-form-item label="椤圭洰鍚嶇О" prop="projectName"> <el-input v-model="queryParams.projectName" - placeholder="璇疯緭鍏ュ伐绋嬪悕绉�" + placeholder="椤圭洰鍚嶇О鎼滅储" clearable @keyup.enter.native="handleQuery" /> </el-form-item> - <el-form-item label="涓婚」鐩�" prop="projectInfoId"> - <el-row> - <el-select v-model="queryParams.projectInfoId" filterable clearable style="width: 100%" placeholder="璇烽�夋嫨涓婚」鐩�"> - <el-option - v-for="item in projectList" - :key="'pp1' + item.id" - :label="item.projectName" - :value="item.id"> - </el-option> - </el-select> - </el-row> - </el-form-item> +<!-- <el-form-item label="涓婚」鐩�" prop="projectInfoId">--> +<!-- <el-row>--> +<!-- <el-select v-model="queryParams.projectInfoId" filterable clearable style="width: 100%" placeholder="璇烽�夋嫨涓婚」鐩�">--> +<!-- <el-option--> +<!-- v-for="item in projectList"--> +<!-- :key="'pp1' + item.id"--> +<!-- :label="item.projectName"--> +<!-- :value="item.id">--> +<!-- </el-option>--> +<!-- </el-select>--> +<!-- </el-row>--> +<!-- </el-form-item>--> <el-form-item label="椤圭洰鎺ㄨ繘绫诲瀷" label-width="120px" prop="projectType"> <el-select v-model="queryParams.projectType" placeholder="璇烽�夋嫨椤圭洰鎺ㄨ繘绫诲瀷" clearable> <el-option @@ -47,68 +47,77 @@ </el-form-item> </el-form> - <el-row :gutter="10" class="mb8"> - <el-col :span="1.5"> - <el-button - type="primary" - plain - icon="el-icon-plus" - size="mini" - @click="handleAdd" - v-hasPermi="['code:engineering:add']" - >鏂板</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="success" - plain - icon="el-icon-edit" - size="mini" - :disabled="single" - @click="handleUpdate" - v-hasPermi="['code:engineering:edit']" - >淇敼</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="danger" - plain - icon="el-icon-delete" - size="mini" - :disabled="multiple" - @click="deleteByIds" - v-hasPermi="['code:engineering:remove']" - >鍒犻櫎</el-button> - </el-col> - <el-col :span="1.5"> - <el-button - type="warning" - plain - icon="el-icon-download" - size="mini" - @click="handleExport" - v-hasPermi="['code:engineering:export']" - >瀵煎嚭</el-button> - </el-col> - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> - </el-row> +<!-- <el-row :gutter="10" class="mb8">--> +<!-- <el-col :span="1.5">--> +<!-- <el-button--> +<!-- type="primary"--> +<!-- plain--> +<!-- icon="el-icon-plus"--> +<!-- size="mini"--> +<!-- @click="handleAdd"--> +<!-- v-hasPermi="['code:engineering:add']"--> +<!-- >鏂板</el-button>--> +<!-- </el-col>--> +<!--<!– <el-col :span="1.5">–>--> +<!--<!– <el-button–>--> +<!--<!– type="success"–>--> +<!--<!– plain–>--> +<!--<!– icon="el-icon-edit"–>--> +<!--<!– size="mini"–>--> +<!--<!– :disabled="single"–>--> +<!--<!– @click="handleUpdate"–>--> +<!--<!– v-hasPermi="['code:engineering:edit']"–>--> +<!--<!– >淇敼</el-button>–>--> +<!--<!– </el-col>–>--> +<!--<!– <el-col :span="1.5">–>--> +<!--<!– <el-button–>--> +<!--<!– type="danger"–>--> +<!--<!– plain–>--> +<!--<!– icon="el-icon-delete"–>--> +<!--<!– size="mini"–>--> +<!--<!– :disabled="multiple"–>--> +<!--<!– @click="deleteByIds"–>--> +<!--<!– v-hasPermi="['code:engineering:remove']"–>--> +<!--<!– >鍒犻櫎</el-button>–>--> +<!--<!– </el-col>–>--> +<!--<!– <el-col :span="1.5">–>--> +<!--<!– <el-button–>--> +<!--<!– type="warning"–>--> +<!--<!– plain–>--> +<!--<!– icon="el-icon-download"–>--> +<!--<!– size="mini"–>--> +<!--<!– @click="handleExport"–>--> +<!--<!– v-hasPermi="['code:engineering:export']"–>--> +<!--<!– >瀵煎嚭</el-button>–>--> +<!--<!– </el-col>–>--> +<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>--> +<!-- </el-row>--> <el-table + ref="elTable" v-loading="loading" + style="margin-top: 20px" :data="engineeringList" + height="100%" sortable="custom" row-key="id" border default-expand-all :tree-props="{children: 'children', hasChildren: 'hasChildren'}" - :show-overflow-tooltip="true" - @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" align="center" /> - <el-table-column label="宸ョ▼鍚嶇О" align="center" prop="projectName" /> - <el-table-column label="涓婚」鐩悕绉�" align="center" prop="projectInfoName" /> + :show-overflow-tooltip="true"> + <el-table-column label="椤圭洰鍚嶇О" min-width="250" :show-overflow-tooltip="true" prop="projectName" /> <el-table-column label="椤圭洰鎺ㄨ繘绫诲瀷" align="center" prop="projectType"> <template slot-scope="scope"> <dict-tag :options="dict.type.sys_project_type" :value="scope.row.projectType"/> + </template> + </el-table-column> + <el-table-column label="涓荤閮ㄩ棬" align="center" prop="competentDepartmentName"> + </el-table-column> + <el-table-column label="涓氫富鍗曚綅" align="center" prop="projectOwnerUnitName"> + </el-table-column> + <el-table-column label="骞翠唤" align="center" prop="year"> + <template slot-scope="scope"> + {{ scope.row.year ? scope.row.year + '骞�' : '' }} </template> </el-table-column> <el-table-column label="鎶曡祫棰�(涓�)" align="center" prop="investmentAmount" /> @@ -117,31 +126,28 @@ <dict-tag :options="dict.type.sys_project_status" :value="scope.row.status"/> </template> </el-table-column> - <el-table-column label="涓荤閮ㄩ棬" align="center" prop="departmentName"> - - </el-table-column> - <el-table-column label="涓氫富鍗曚綅" align="center" prop="unitName"> - </el-table-column> - <el-table-column label="骞翠唤" align="center" prop="year"> - <template slot-scope="scope"> - {{ scope.row.year ? scope.row.year.split('-')[0] + '骞�' : '' }} - </template> - </el-table-column> <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> <template slot-scope="scope"> <el-button size="mini" type="text" + icon="el-icon-plus" + style="margin-right: 10px" + @click="handleAdd(scope.row)" + >娣诲姞瀛愬伐绋�</el-button> + <el-button + size="mini" + type="text" icon="el-icon-edit" + v-if="!isProject(scope.row.id)" @click="handleUpdate(scope.row)" - v-hasPermi="['code:engineering:edit']" >淇敼</el-button> <el-button size="mini" type="text" icon="el-icon-delete" + v-if="!isProject(scope.row.id)" @click="deleteById(scope.row)" - v-hasPermi="['code:engineering:remove']" >鍒犻櫎</el-button> </template> </el-table-column> @@ -160,18 +166,6 @@ <el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form-item label="宸ョ▼鍚嶇О" prop="projectName"> <el-input v-model="form.projectName" placeholder="璇疯緭鍏ュ伐绋嬪悕绉�" /> - </el-form-item> - <el-form-item label="涓婚」鐩�" prop="projectInfoId"> - <el-row> - <el-select v-model="form.projectInfoId" filterable style="width: 100%" placeholder="璇烽�夋嫨涓婚」鐩�"> - <el-option - v-for="item in projectList" - :key="'pp' + item.id" - :label="item.projectName" - :value="item.id"> - </el-option> - </el-select> - </el-row> </el-form-item> <el-row :gutter="20"> <el-col :span="12"> @@ -213,11 +207,9 @@ <el-date-picker v-model="form.year " placeholder="閫夋嫨鏃堕棿" style="width: 100%" - type="date" - value-format="yyyy-MM-dd HH:mm:ss"/> - </el-form-item> - <el-form-item label="鐖跺伐绋�" prop="parent"> - <treeselect v-model="form.parent" @input="getProjectOwnerUnit" noChildrenText="鏃犲尮閰嶆暟鎹�" :options="selectOptions" :normalizer="normalizer" placeholder="閫夋嫨鍗曚綅" /> + type="year" + value-format="yyyy" + :picker-options="pickerOptions"/> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> @@ -235,6 +227,7 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import {approvalList,listDept} from "@/api/system/dept"; +import {getProjectProcess} from "@/api/projectProcess/projectProcess"; export default { @@ -275,6 +268,7 @@ projectType: null, status: null, }, + addId:null, // 琛ㄥ崟鍙傛暟 form: {}, // 琛ㄥ崟鏍¢獙 @@ -302,6 +296,15 @@ this.getDeptList(); }, methods: { + pickerOptions: { + // 杩欓噷鍙互娣诲姞鏇村鐨刾icker閫夐」锛屼絾涓虹畝鍖栫ず渚嬶紝鍙睍绀虹鐢ㄥ叾浠栨棩鏈熺殑閫昏緫 + // 鍏抽敭璁剧疆锛氭樉绀哄勾浠介�夋嫨鍣� + pickers: ['year'] + }, + isProject(id) { + const numericPattern = /^\d+(\.\d+)?$/; + return numericPattern.test(id) + }, getProjectOwnerUnit(unitId) { console.log(unitId) // if (deptId) { @@ -357,10 +360,10 @@ /** 鏌ヨ宸ョ▼搴撳垪琛� */ getList() { this.loading = true; - getProjectEngineerings(this.queryParams).then(res => { - this.engineeringList = res.data; - console.log(this.engineeringList) - this.total = res.total; + + getProjectProcess(this.queryParams).then(response => { + this.engineeringList = response.data; + this.total = response.total; this.loading = false; }); }, @@ -386,8 +389,10 @@ year:null, parent:null, }; + this.addId = null; this.resetForm("form"); }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { this.queryParams.pageNum = 1; @@ -404,11 +409,18 @@ this.single = selection.length!==1 this.multiple = !selection.length }, - /** 鏂板鎸夐挳鎿嶄綔 */ - handleAdd() { + handleAdd(row){ this.reset(); this.open = true; this.title = "娣诲姞宸ョ▼"; + if (this.isProject(row.id)) { + this.form.projectInfoId = row.id + this.form.parent = '0' + } else { + this.form.projectInfoId = row.projectInfoId + this.form.parent = row.id + } + }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { @@ -423,17 +435,16 @@ /** 鎻愪氦鎸夐挳 */ submitForm() { this.$refs["form"].validate(valid => { - console.log(this.form) if (valid) { - if (this.form.id != null) { - editProjectEngineering(this.form).then(response => { - this.$modal.msgSuccess("淇敼鎴愬姛"); + if (! this.form.id){ + addProjectEngineering(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); this.open = false; this.getList(); }); } else { - addProjectEngineering(this.form).then(response => { - this.$modal.msgSuccess("鏂板鎴愬姛"); + editProjectEngineering(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); this.open = false; this.getList(); }); -- Gitblit v1.8.0