From 3453eed4c505a5ffe765cc702836f5f5d9d5d5da Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期四, 23 一月 2020 14:50:52 +0800 Subject: [PATCH] 添加逻辑 --- src/views/list.vue | 184 ++++++++++++++++++++++++++++++++++++++------- 1 files changed, 154 insertions(+), 30 deletions(-) diff --git a/src/views/list.vue b/src/views/list.vue index 2709822..304336b 100644 --- a/src/views/list.vue +++ b/src/views/list.vue @@ -3,65 +3,106 @@ <div align="left"> <div class="btn-line"> - <el-button type="primary" @click="onSubmit">鏂板缓椤圭洰</el-button> + <el-button type="primary" @click="addProject">鏂板缓椤圭洰</el-button> + <el-button type="primary" v-if="editShow" @click="editProject">缂栬緫椤圭洰</el-button> + <el-button type="primary" @click="onSubmit">鏌ョ湅璇︽儏</el-button> </div> <el-form label-width="80px" :inline="true" :label-position="labelPosition" :model="formInline" class="form-inline"> - <el-form-item label="瀹℃壒浜�"> - <el-input v-model="formInline.user" placeholder="瀹℃壒浜�"></el-input> + <el-form-item label="椤圭洰鍚嶇О"> + <el-input v-model="formInline.name" placeholder="椤圭洰鍚嶇О"></el-input> </el-form-item> - <el-form-item label="娲诲姩鍖哄煙"> - <el-select v-model="formInline.region" placeholder="娲诲姩鍖哄煙"> - <el-option label="鍖哄煙涓�" value="shanghai"></el-option> - <el-option label="鍖哄煙浜�" value="beijing"></el-option> + + <el-form-item label="鐮旂┒鐩殑"> + <el-select v-model="formInline.type" placeholder="鐮旂┒鐩殑"> + <el-option label="骞查鎬х郴缁熻瘎浠�" value="骞查鎬х郴缁熻瘎浠�"></el-option> + <el-option label="璇婃柇鎬х郴缁熻瘎浠�" value="璇婃柇鎬х郴缁熻瘎浠�"></el-option> + <el-option label="棰勫悗鎬х郴缁熻瘎浠�" value="棰勫悗鎬х郴缁熻瘎浠�"></el-option> + <el-option label="鐩稿叧鎬х郴缁熻瘎浠�" value="鐩稿叧鎬х郴缁熻瘎浠�"></el-option> </el-select> + </el-form-item> + + + <el-form-item label="椤圭洰鐘舵��"> + <el-select v-model="formInline.status" placeholder="椤圭洰鐘舵��"> + <el-option label="鏈紑濮�" value="edit"></el-option> + <el-option label="杩涜涓�" value="working"></el-option> + <el-option label="宸插欢鏈�" value="delay"></el-option> + <el-option label="宸茬粨鏉�" value="finish"></el-option> + </el-select> + </el-form-item> + <el-form-item > + <el-button type="primary" @click="query_">鏌ヨ</el-button> + <el-button type="info" @click="empty_">閲嶇疆</el-button> </el-form-item> </el-form> <div class="btn-line"> - <el-button type="primary" @click="onSubmit">鏌ヨ</el-button> - <el-button type="info" @click="onSubmit">閲嶇疆</el-button> + </div> </div> - <el-table :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"> - <el-table-column prop="name" label="椤圭洰鍚嶇О" width="180"> + <el-table highlight-current-row + @current-change="tableChange" + v-loading="loading_table" + align="center" + max-height="280" + :data="tableData" style="width: 100%; " :row-class-name="tableRowClassName"> + <el-table-column prop="name" label="椤圭洰鍚嶇О" > </el-table-column> - <el-table-column prop="reseachType" label="鐮旂┒绫诲瀷" width="180"> + <el-table-column prop="status" label="褰撳墠鐘舵��" :formatter="status_"> </el-table-column> - <el-table-column prop="detailCnt" label="鏈嶅姟椤圭洰鏁�" width="180"> + <el-table-column prop="reseachType" label="鐮旂┒绫诲瀷" > </el-table-column> - <el-table-column prop="finishCnt" label="宸插畬鎴愰」鐩�" width="180"> + <el-table-column prop="totalCnt" label="鏈嶅姟椤圭洰鏁�" > </el-table-column> - <el-table-column prop="delayCnt" label="寤舵湡椤圭洰" width="180"> + <el-table-column prop="finishCnt" label="宸插畬鎴愰」鐩�" > </el-table-column> - <el-table-column prop="startTime" label="寮�濮嬫椂闂�" width="180"> + <el-table-column prop="delayCnt" label="寤舵湡椤圭洰" > </el-table-column> - <el-table-column prop="endTime" label="缁撴潫鏃堕棿" width="180"> + <el-table-column prop="startTime" label="寮�濮嬫椂闂�" :formatter="dateFormat_"> </el-table-column> - <el-table-column prop="finish" label="鏄惁缁撴潫" width="180"> + <el-table-column prop="endTime" label="缁撴潫鏃堕棿" :formatter="dateFormat_" > </el-table-column> + <el-table-column prop="desp" label="椤圭洰鎻忚堪"> </el-table-column> </el-table> - <el-pagination background :current-page="pagenum" :page-sizes="[10, 15, 20]" :page-size="pagesize" layout="total, sizes, prev, pager, next, jumper" + <el-pagination + @current-change="handleCurrentChange" + background :current-page="pagenum" :page-sizes="[15]" :page-size="pagesize" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination> + + <el-dialog @close="Cancel" width="70%" top="50px" :visible.sync="dialog_1" append-to-body> + <newProject @closeNewProject="closeNewProject" v-bind:rowData="rowData" ref="newProject_"></newProject> + </el-dialog> </div> </template> <script> + import newProject from '../components/popup/newProject.vue' export default { + + components: { + newProject + }, data() { return { + editShow: true, + rowData:undefined, loading_table: false, query: "", + dialog_1: false, pagenum: 1, pagesize: 15, total: 0, + selected: undefined, labelPosition: "left", tableData: [], + userId:"", + assign:undefined, formInline: { user: '', region: '' @@ -70,21 +111,51 @@ }, mounted() { //缁勪欢閰嶇疆鍚庯紝椤甸潰鏄剧ず鍓嶃�傜敤浜庡姞杞芥暟鎹� this.getData(); + this.userId = localStorage.getItem('userId'); + this.assign = localStorage.getItem('assign'); }, methods: { + Cancel() { + this.$refs.newProject_.Cancel(); + }, + tableChange(val) { + this.selected = val; + if (this.selected.userId == this.userId) { + this.editShow = true; + }else { + this.editShow = false; + } + + }, + handleCurrentChange(pageno) { + this.pagenum = pageno; + this.query_(); + }, empty_() { this.formInline = {}; this.query_(); }, - query_() {}, - getData() { + query_() { + this.getData(this.formInline); + }, + getData(query) { this.loading_table = true; let pageno = this.pagenum; let url = "/api/scheme/page/" + pageno; - this.axios.get(url, { - params: { - pageSize: this.pagesize - }, + + let params = { + pageSize: this.pagesize + }; + if(this.assign) { + params.userId = this.userId; + } + if(query){ + params.name = query.name; + params.status = query.status; + params.type = query.type; + } + this.$axios.get(url, { + params }) .then(data_ => { console.log(data_); @@ -96,16 +167,62 @@ }) }, tableRowClassName(row, rowIndex) { - if (rowIndex === 1) { - return 'warning-row'; - } else if (rowIndex === 3) { + if (row.finish) { return 'success-row'; + } else if(row.delay){ + return 'warning-row'; } return ''; }, onSubmit() { - console.log('submit!'); - } + query_(); + }, + dateFormat_(row, colum, val ,index) { + return this.$moment(val).format('YYYY-MM-DD'); + + }, + status_(row, colum, val ,index) { + if(val == "working") { + return "杩涜涓�"; + }else if(val == "edit") { + return "鏈紑濮�"; + }else if(val == "delay") { + return "宸插欢鏈�"; + }else if(val == "finish") { + return "宸茬粨鏉�"; + } + }, + finishFotmat(row, colum, val ,index) { + if(val) { + return "宸茬粨鏉�"; + }else { + return "杩涜涓�"; + } + }, + addProject() { + this.dialog_1 = true; + + }, + editProject() { + if(!this.selected || this.selected.status != "edit"){ + + this.$message({message:'璇烽�変腑涓�鏉℃湭鍚姩鐨勯」鐩�', type: 'warning'}); + }else { + this.rowData = { + id:this.selected.id, + desp:this.selected.desp, + name: this.selected.name, + objective:this.selected.reseachType, + items:[this.$moment(this.selected.startTime).format('YYYY-MM-DD'),this.$moment(this.selected.endTime).format('YYYY-MM-DD')] + } + this.dialog_1 = true; + } + + + },closeNewProject() { + this.dialog_1 = false + }, + } } </script> @@ -114,4 +231,11 @@ .btn-line { margin-bottom: 20px; } + .el-table .warning-row { + background: oldlace; + } + + .el-table .success-row { + background: #f0f9eb; + } </style> -- Gitblit v1.8.0