From c1805e1e6f41a370546e70a07d5f4496ad4b341d Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期三, 22 一月 2020 15:58:55 +0800 Subject: [PATCH] add --- src/components/square.vue | 168 +++++++++++++- src/components/popup/portion/substep.vue | 2 src/views/login.vue | 81 +++--- src/views/Overview.vue | 60 ++++- src/views/Mine.vue | 17 - src/views/Home.vue | 20 + src/components/popup/newProject.vue | 39 ++ src/views/calendarTask.vue | 166 ++++++++++----- src/views/list.vue | 79 +++++- src/assets/login-left.jpg | 0 src/main.ts | 22 -- 11 files changed, 461 insertions(+), 193 deletions(-) diff --git a/src/assets/login-left.jpg b/src/assets/login-left.jpg new file mode 100644 index 0000000..1c15073 --- /dev/null +++ b/src/assets/login-left.jpg Binary files differ diff --git a/src/components/popup/newProject.vue b/src/components/popup/newProject.vue index 5d6d823..82368da 100644 --- a/src/components/popup/newProject.vue +++ b/src/components/popup/newProject.vue @@ -35,8 +35,8 @@ </el-date-picker> </el-form-item> - <el-form-item label="椤圭洰鎻忚堪:" prop="desc" style="width: 50%;"> - <el-input type="textarea" v-model="ruleForm.desc"></el-input> + <el-form-item label="椤圭洰鎻忚堪:" prop="desp" style="width: 50%;"> + <el-input type="textarea" v-model="ruleForm.desp"></el-input> </el-form-item> </el-form> </div> @@ -63,6 +63,12 @@ import substepReadOnly from './portion/substepReadOnly.vue' export default { name: 'dataImport', + props:{ + rowData:{ + type: Object, + required: true + } + }, components: { substep, substepReadOnly @@ -125,7 +131,12 @@ } }, - +mounted() { + if(this.rowData.id) { + this.ruleForm = this.rowData; + this.xmId = this.rowData.id; + } +}, methods:{ Cancel() { this.add_Step = 0; @@ -171,7 +182,7 @@ // this.nextStepName = "瀹� 鎴�"; } else if (this.add_Step == 2) { - this.Cancel(); + this.saveStep3(); } }, @@ -189,7 +200,8 @@ name: ruleForm_.name, startTime: items1, endTime: items2, - id: this.xmId + id: this.xmId, + desp:ruleForm_.desp } }).then(data_ => { console.log(data_); @@ -243,7 +255,7 @@ if (is_null1) { let datas = "?datas=" + encodeURI(JSON.stringify(form_array)); - let url = "/api/schemeDetail/updates"; + let url = "/api/detail/updates"; this.$axios.get(url + datas).then(data_ => { console.log(data_); @@ -254,7 +266,20 @@ }) } }, - + saveStep3() { + let url = "/api/scheme/working/" + this.ruleForm.id; + this.$axios.get(url + datas).then(data_ => { + if(data_.data.success) { + this.$message('椤圭洰鍚姩鎴愬姛'); + this.Cancel(); + }else { + + this.$message({message:'椤圭洰鍚姩澶辫触', type: 'warning'}); + } + }).catch(error =>{ + console.log(error); + }) + }, } } </script> diff --git a/src/components/popup/portion/substep.vue b/src/components/popup/portion/substep.vue index f418ebc..4a3766d 100644 --- a/src/components/popup/portion/substep.vue +++ b/src/components/popup/portion/substep.vue @@ -1486,7 +1486,7 @@ }, getDetailed() { - let url = "/api/schemeDetail/parent/" + this.xmId; + let url = "/api/detail/parent/" + this.xmId; this.$axios.get(url).then(data_ => { console.log(data_); this.defaultCheckedKeys = []; diff --git a/src/components/square.vue b/src/components/square.vue index cf30081..cfc70ac 100644 --- a/src/components/square.vue +++ b/src/components/square.vue @@ -1,34 +1,112 @@ <template> + <div> + <el-row > + <el-col :span="18"><el-form label-width="80px" :inline="true" :label-position="labelPosition" :model="formInline" class="form-inline"> + <el-form-item label="鏍囬"> + <el-input v-model="formInline.title" placeholder="鏍囬"></el-input> + </el-form-item> + + <el-form-item label="鎻忚堪"> + <el-input v-model="formInline.desp" placeholder="鎻忚堪"></el-input> + </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></el-col> + <el-col :span="4" ><el-button type="primary" @click="createNew">鍒涘缓</el-button></el-col> + </el-row> + <div class="infinite-list-wrapper" style="overflow:auto"> - <ul class="list" v-infinite-scroll="load" infinite-scroll-disabled="disabled"> - <li v-for="item in dataList" :key = "item.id" class="list-item"> - <el-row> - <el-col :span="8"><div class="grid-content">{{item.title}}</div></el-col> - <el-col :span="4" :><div class="grid-content">{{item.time}}</div></el-col> + + <div class="list" v-infinite-scroll="load" infinite-scroll-disabled="disabled"> + <div v-for="one in dataList" :key="one.id" class="list-item" @click="showItem(one)"> + <el-row > + <el-col :span="8"><div class="grid-content">{{one.title}}</div></el-col> + <el-col :span="4" :offset="12"><div class="">{{one.time}}</div></el-col> </el-row> + <el-row> - <el-col :span="20"><div class="grid-content">{{item.desp}}</div></el-col> + <el-col :span="20"><div class="grid-content">{{one.desp}}</div></el-col> </el-row> - </li> - </ul> + <el-divider></el-divider> + </div> + </div> <p v-if="loading">鍔犺浇涓�...</p> <p v-if="noMore">娌℃湁鏇村浜�</p> </div> + <el-dialog + title="璇︽儏" + :visible.sync="dialogVisible" + width="40%" + height="40%" + :before-close="handleClose"> + <span>{{selectOne.title}}</span> + <el-divider></el-divider> + <div style="content"> + <span>{{selectOne.desp}}</span> + </div> + + <span slot="footer" class="dialog-footer"> + <el-button :v-if="selectOne.attachment == '' ? false: true" type="primary" @click="download">涓� 杞�</el-button> + </span> + </el-dialog> + + <el-dialog title="鍒涘缓璇濋" :visible.sync="dialogFormVisible"> + <el-form :model="form"> + <el-form-item label="璇濋鍚嶇О" :label-width="formLabelWidth"> + <el-input v-model="form.name" autocomplete="off"></el-input> + </el-form-item> + <el-form-item label="璇濋鍐呭" :label-width="formLabelWidth"> + <el-input type="textarea" v-model="form.desp" autocomplete="off"></el-input> + </el-form-item> + <el-upload + class="upload-demo" + :on-preview="handlePreview" + :on-remove="handleRemove" + :before-remove="beforeRemove" + :limit="1" + :auto-upload='false' + :on-exceed="handleExceed" + :file-list="fileList"> + <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button> + <div slot="tip" class="el-upload__tip">涓嶈秴杩�50M</div> + </el-upload> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="dialogFormVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="dialogFormVisible = false">纭� 瀹�</el-button> + </div> + </el-dialog> + + </div> </template> <script> - import squareList from "./squareList.vue"; - export default { data() { return { + form:{}, + fileList: [], + dialogVisible: false, + dialogFormVisible: false, + labelPosition: "left", + formInline:{}, + selectOne:{ + title:"biaoti", + desp:"miaoshu", + attachment:"222" + }, dataList: [ - {id:1,title:"11",desp:"111",time:"11-11"}, - {id:1,title:"11",desp:"111",time:"11-11"}, - {id:1,title:"11",desp:"111",time:"11-11"}, - {id:1,title:"11",desp:"111",time:"11-11"}, - {id:1,title:"11",desp:"111",time:"11-11"}, + {id:1,attachment:"222",title:"鏍囬", desp:"鎻忚堪121212121212", time:"12鍒嗛挓鍓�"}, + {id:1,attachment:"222",title:"11", desp:"111", time:"11111"}, + {id:1,attachment:"",title:"11", desp:"111", time:"11111"}, + {id:1,attachment:"",title:"11", desp:"111", time:"11111"}, ], loading: false } @@ -42,16 +120,74 @@ } }, methods: { + handleRemove(file, fileList) { + console.log(file, fileList); + }, + handlePreview(file) { + console.log(file); + }, + handleExceed(files, fileList) { + this.$message.warning(`褰撳墠闄愬埗閫夋嫨 3 涓枃浠讹紝鏈閫夋嫨浜� ${files.length} 涓枃浠讹紝鍏遍�夋嫨浜� ${files.length + fileList.length} 涓枃浠禶); + }, + beforeRemove(file, fileList) { + return this.$confirm(`纭畾绉婚櫎 ${ file.name }锛焋); + }, load() { // this.loading = true // setTimeout(() => { // this.count += 2 // this.loading = false // }, 2000) - } + }, + showItem(one) { + this.dialogVisible = true; + this.selectOne = one; + }, + createNew() { + this.dialogFormVisible = true; + }, + empty_() { + this.formInline = {}; + this.query_(); + }, + query_() { + this.getData(this.formInline); + }, + getData(query) { + this.loading_table = true; + let pageno = this.pagenum; + let url = "/api/scheme/page/" + pageno; + let params = { + pageSize: this.pagesize + }; + if(query){ + params.name = query.name; + params.delay = query.delay; + params.finish = query.fiish; + params.type = query.type; + } + this.$axios.get(url, { + params + }) + .then(data_ => { + console.log(data_); + this.tableData = data_.data.data.records; //缁檛ableData璧嬪�� + this.total = data_.data.data.total; + this.loading_table = false; + }).catch(error => { + console.log(error); + }) + }, } } </script> <style> + .grid-content{ + text-align: left; + padding: 5px; + } + .content{ + + } </style> diff --git a/src/main.ts b/src/main.ts index 0d04b88..87d49de 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,5 @@ import Vue from "vue"; import App from "./App.vue"; -import axios from 'axios' import "./registerServiceWorker"; import router from "./router"; @@ -19,7 +18,6 @@ Axios.defaults.baseURL = '/api'; Axios.defaults.headers.post['Content-Type'] = 'application/json'; -Vue.prototype.axios = axios; new Vue({ router, @@ -27,23 +25,3 @@ render: h => h(App) }).$mount("#app"); -//鏃ユ湡鏍煎紡鍖� -/* Date.prototype.Format = function(fmt){ - var o = { - "M+": this.getMonth() + 1, - "d+": this.getDate(), - "H+": this.getHours(), - "m+": this.getMinutes(), - "s+": this.getSeconds(), - "S+": this.getMilliseconds() - }; - if(/(y+)/.test(fmt)){ - fmt=fmt.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length)); - } - for(var k in o){ - if (new RegExp("(" + k +")").test(fmt)){ - fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(String(o[k]).length))); - } - } - return fmt; -}; */ diff --git a/src/views/Home.vue b/src/views/Home.vue index bf907bf..b795141 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -42,7 +42,7 @@ <el-container> <el-header style="text-align: right; font-size: 15px;padding-right: 40px;"> <i class="el-icon-user-solid"></i> - <span>admin</span> + <span>{{user.name}}</span> </el-header> <el-main style="background-color: #f7f8f9;"> @@ -62,6 +62,7 @@ data() { return { + user:{}, breadcrumbItems:[], defaultActive: "", navList:[ @@ -85,8 +86,21 @@ } }, created() { - let userId_ = localStorage.getItem('userId'); - if (!userId_) { + let userId = localStorage.getItem('userId'); + let userName = localStorage.getItem('userName'); + let roleId = localStorage.getItem('roleId'); + let roleName = localStorage.getItem('roleName'); + let departId = localStorage.getItem('departId'); + let departName = localStorage.getItem('departName'); + this.user = { + id:userId, + name:userName, + roleId:roleId, + roleName:roleName, + departId:departId, + departName:departName, + }; + if (!user) { this.$router.push('/login'); } else { diff --git a/src/views/Mine.vue b/src/views/Mine.vue index 199041f..638f4c4 100644 --- a/src/views/Mine.vue +++ b/src/views/Mine.vue @@ -36,22 +36,7 @@ }, methods: { init() { - let url = "/api/scheme/addOrUpdate"; - this.axios.get(url,{ - params: { - reseachType: "1", - name: "2", - startTime: "2020-01-01", - endTime: "2020-01-12", - id: null - } - }).then(data_ => { - console.log(data_); - - this.add_Step = 1; - }).catch(error =>{ - console.log(error); - }) + }, }, } diff --git a/src/views/Overview.vue b/src/views/Overview.vue index aaf0fd9..337d45b 100644 --- a/src/views/Overview.vue +++ b/src/views/Overview.vue @@ -2,7 +2,7 @@ <div class="class_overview"> <div style="float: left; width: 100%; height: 50px;"> <span>璇烽�夋嫨椤圭洰锛�</span> - <el-select v-model="value" placeholder="璇烽�夋嫨" size="small"> + <el-select @change="selectChange_" v-model="value" placeholder="璇烽�夋嫨" size="small"> <el-option v-for="item in options" :key="item.value" @@ -11,7 +11,6 @@ </el-option> </el-select> - <el-button type="primary" style="float: right;" @click="addProject">鏂板缓椤圭洰</el-button> </div> <div style="float: left; margin-left: 1%; width: 69%; height: 80vh; "> @@ -39,20 +38,16 @@ <div class="z_shadow" style="float: right; margin-right: 1%; width: 28%; height: 70vh; border: 1px solid #e4eef9;"></div> - <el-dialog @close="Cancel" width="70%" top="50px" :visible.sync="dialog_1" append-to-body> - <newProject @closeNewProject="closeNewProject"></newProject> - </el-dialog> + </div> </template> <script> - import newProject from '../components/popup/newProject.vue' + export default { - components: { - newProject - }, + data() { return { options: [ @@ -80,6 +75,8 @@ } }, mounted() { + this.initSelect(); + let fileList1 = [ {name: "鏂囦欢鍚嶇О1", type: "isfile", path: ""}, {name: "鏂囦欢鍚嶇О2", type: "isfile", path: ""}, @@ -89,6 +86,26 @@ }, methods: { + initSelect() { + var me = this; + this.$axios.get("/api/scheme/all") + .then(data_ => { + console.log(data_); + if(data_.data.success){ + me.options = []; + var datas = data_.data.data; + datas.forEach(function(one){ + var item = { + value:one.id, + label:one.name + } + me.options.push(item); + }); + } + }).catch(error => { + console.log(error); + }) + }, file_click(file) { if (file.type == 'isfiles') { let fileList2 = [ @@ -114,16 +131,27 @@ ]; this.fileList = fileList2; }, - addProject() { - this.dialog_1 = true; - - }, + Cancel() { }, - closeNewProject() { - this.dialog_1 = false - }, + selectChange_(val) { + let url = "/api/scheme/getSchemeInfo/" + this.value; + this.$axios.get(url,{ + + }).then(data_ => { + console.log(data_); + // 鍥� + // 璁板綍 + // 浜哄憳 + // 璇︽儏 + //鐩綍 + }).catch(error =>{ + console.log(error); + }) + + } + } } diff --git a/src/views/calendarTask.vue b/src/views/calendarTask.vue index 929cb04..2250ad6 100644 --- a/src/views/calendarTask.vue +++ b/src/views/calendarTask.vue @@ -13,15 +13,15 @@ <div class="z_right" > <div v-for="(task_itm, k) in DayDataTree" :key="k" class="right_row"> <h3>{{task_itm.name}}</h3> - <span>{{task_itm.desc}}</span> + <span>{{task_itm.desp}}</span> <div v-for="(type_itm, k_) in task_itm.children" :key="k_" class="right_row_"> - <span>{{k_+1}}銆亄{type_itm.name}}</span> + <span>{{k_+1}}銆亄{type_itm.typeStr}}</span> <el-button size="mini" type="primary" style="float: right; margin-top: 10px;" @click="handleTask(type_itm.id, type_itm.mustAttach, type_itm)">澶勭悊浠诲姟</el-button> </div> </div> </div> - <el-dialog @close="Cancel" width="40%" top="10%" :visible.sync="dialog_1"> + <el-dialog @close="Cancel" width="40%" top="10%" :visible.sync="dialog_1" v-if="dialog_1"> <div slot="title" class="dialog-title" style="text-align: left;"> <span> 浠诲姟澶勭悊 </span> </div> @@ -30,15 +30,15 @@ <el-upload class="upload-demo" :action="upload_url" - multiple + :data="upData" - :limit="3" + :limit="1" :file-list="fileList" :auto-upload='false' ref="upload" > <el-button size="medium" type="text">閫夋嫨鏂囦欢</el-button> - <div slot="tip" class="el-upload__tip">鏂囦欢涓嶈秴杩�500kb</div> + <div slot="tip" class="el-upload__tip">鏂囦欢涓嶈秴杩�50M</div> </el-upload> </div> <div style="text-align: left;"> @@ -95,7 +95,7 @@ let nowDate = new Date(); var imoment = this.$moment(nowDate); let iformat = imoment.format('YYYY-MM'); - let systemDate = iformat + '-01'; + let systemDate = iformat + '-01 00:00:00'; this.getDatedef(systemDate); }, @@ -125,6 +125,7 @@ }, handleTask(id, mustAttach, type_itm) { + this.upload_url = "/api/api/file/fileUpload/" + id; this.handleTaskType = type_itm; this.dialog_1 = true; }, @@ -132,8 +133,34 @@ doHandleTask() { //姝d鐨勬槑缁嗕换鍔″畬鎴� let id = this.handleTaskType.id; - //璇锋眰鏀瑰彉姝ゆ槑缁嗙殑瀹屾垚鐘舵�侊紱 - this.desc_task;//鎻忚堪鐨勫唴瀹� + if(this.handleTaskType.mustAttach) { + this.upData = {//璁剧疆瑕佷紶鐨勫弬鏁� + desp: this.desc_task + }, + + this.$refs.upload.submit();//寮�濮嬩笂浼� + } + else { + let params = this.upData + let url = "/api/detail/deal/" + id; + this.$axios.get(url, { + params + }) + .then(data_ => { + console.log(data_); + let datas= data_.data.data; + datas = datas.map(el => { + var imoment = this.$moment(el.date); + // 鏍煎紡鍖栨垚锛屽勾鏈堟棩 + let iformat = imoment.format('YYYY-MM-DD'); + el.date = iformat; + return el; + }) + this.datedef = datas; + }).catch(error => { + console.log(error); + }); + } @@ -142,15 +169,15 @@ } }, - submitUpload() { - this.handleTaskType; //瑕佸鐞嗙殑鏄庣粏鏁版嵁 + // submitUpload() { + // this.handleTaskType; //瑕佸鐞嗙殑鏄庣粏鏁版嵁 - this.upData = {//璁剧疆瑕佷紶鐨勫弬鏁� + // this.upData = {//璁剧疆瑕佷紶鐨勫弬鏁� - }, - this.upload_url = ""; //璁剧疆涓婁紶鎺ュ彛 - this.$refs.upload.submit();//寮�濮嬩笂浼� - }, + // }, + // this.upload_url = ""; //璁剧疆涓婁紶鎺ュ彛 + // this.$refs.upload.submit();//寮�濮嬩笂浼� + // }, Cancel() { this.dialog_1 = false; @@ -159,7 +186,7 @@ dateChange(date_) { var imoment = this.$moment(date_); let iformat = imoment.format('YYYY-MM'); - let systemDate = iformat + '-01'; + let systemDate = iformat + '-01 00:00:00'; this.getDatedef(systemDate); }, @@ -179,50 +206,77 @@ {'date': "2020-01-01", 'task': 3}, //杩斿洖鐨勬暟缁勫瓧娈靛寘鍚繖涓や釜瀛楁 {'date': "2020-01-11", 'task': 2}, ], */ + let url = "/api/detail/getMonth"; + let params = { + startTime: this.$moment(month_).format('YYYY-MM-DD') + }; - - + this.$axios.get(url, { + params + }) + .then(data_ => { + console.log(data_); + let datas= data_.data.data; + datas = datas.map(el => { + var imoment = this.$moment(el.date); + // 鏍煎紡鍖栨垚锛屽勾鏈堟棩 + let iformat = imoment.format('YYYY-MM-DD'); + el.date = iformat; + return el; + }) + this.datedef = datas; + }).catch(error => { + console.log(error); + }); }, getDayData(date_) {//鑾峰彇鎸囧畾鏃ョ殑浠诲姟銆傚'2019-12-21'瀛楃涓层�傚湪鍙充晶鏄剧ず鐨� - /* aa:[ - {'id': "椤圭洰鐨刬d", 'name': "椤圭洰鍚嶇О", 'desc': "椤圭洰鎻忚堪"}, //杩斿洖鐨勬暟缁勫瓧娈� - {'id': "鏄庣粏鐨処D(鐢ㄤ簬澶勭悊鏃剁煡閬撴槸鍝釜椤圭洰鍝釜绫诲瀷鐨勫鐞�)", 'name': "绫诲瀷鍚嶇О", 'mustAttach': "鏈夋棤浜や粯鐗�", 'parentId': "椤圭洰id"}, // - ], */ - let DayDatas = [ - {'id': "111", 'name': "娴嬭瘯1椤圭洰", 'desc': "姝ら」鐩富瑕侀拡瀵规彁楂樻晥鐜囧拰閿�鍞噺"}, //杩斿洖鐨勬暟缁勫瓧娈� - {'id': "111_1", 'name': "绔嬮鏈嶅姟", 'mustAttach': true, 'parentId': "111"}, // - {'id': "111_2", 'name': "鏂规寮�鍙戞湇鍔�", 'mustAttach': false, 'parentId': "111"}, // - ]; + let url = "/api/detail/getDay"; + let params = { + startTime: this.$moment(date_).format('YYYY-MM-DD') + }; - let list = DayDatas; - let parId = ""; - let obj = {}; - let result = []; - - list.map(el => { - obj[el.id] = el; - }) - for(let i=0, len = list.length; i < len; i++) { - let id = list[i].parentId; - //璁剧疆鏄剧ず瀛楁 - list[i].value = list[i].id; - list[i].label = list[i].name; - - if(id == parId || !id) { - if(!obj[list[i].id].children) { - obj[list[i].id].children = []; - } - result.push(list[i]); - continue; - } - if(obj[id].children) { - obj[id].children.push(list[i]); - } else { - obj[id].children = [list[i]]; - } - } - this.DayDataTree = result; + this.$axios.get(url, { + params + }) + .then(data_ => { + console.log(data_); + // let DayDatas = [ + // {'id': "111", 'name': "娴嬭瘯1椤圭洰", 'desc': "姝ら」鐩富瑕侀拡瀵规彁楂樻晥鐜囧拰閿�鍞噺"}, //杩斿洖鐨勬暟缁勫瓧娈� + // {'id': "111_1", 'name': "绔嬮鏈嶅姟", 'mustAttach': true, 'parentId': "111"}, // + // {'id': "111_2", 'name': "鏂规寮�鍙戞湇鍔�", 'mustAttach': false, 'parentId': "111"}, // + // ]; + let list = data_.data.data; + let parId = ""; + let obj = {}; + let result = []; + + list.map(el => { + obj[el.id] = el; + }) + for(let i=0, len = list.length; i < len; i++) { + let id = list[i].parentId; + //璁剧疆鏄剧ず瀛楁 + list[i].value = list[i].id; + list[i].label = list[i].name; + + if(id == parId || !id) { + if(!obj[list[i].id].children) { + obj[list[i].id].children = []; + } + result.push(list[i]); + continue; + } + if(obj[id].children) { + obj[id].children.push(list[i]); + } else { + obj[id].children = [list[i]]; + } + } + this.DayDataTree = result; + }).catch(error => { + console.log(error); + }) } diff --git a/src/views/list.vue b/src/views/list.vue index 7b98994..3c89d4c 100644 --- a/src/views/list.vue +++ b/src/views/list.vue @@ -3,7 +3,8 @@ <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" @click="editProject">缂栬緫椤圭洰</el-button> <el-button type="primary" @click="onSubmit">鏌ョ湅璇︽儏</el-button> </div> @@ -22,16 +23,13 @@ </el-select> </el-form-item> - <el-form-item label="鏄惁寤舵湡"> - <el-select v-model="formInline.delay" placeholder="鏄惁寤舵湡"> - <el-option label="宸插欢鏈�" value="true"></el-option> - <el-option label="鏈欢鏈�" value="false"></el-option> - </el-select> - </el-form-item> - <el-form-item label="鏄惁缁撴潫"> - <el-select v-model="formInline.finish" placeholder="鏄惁缁撴潫"> - <el-option label="宸茬粨鏉�" value="true"></el-option> - <el-option label="鏈粨鏉�" value="false"></el-option> + + <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 > @@ -49,9 +47,11 @@ @current-change="tableChange" v-loading="loading_table" align="center" - max-height="300" + 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="status" label="褰撳墠鐘舵��" :formatter="status_"> </el-table-column> <el-table-column prop="reseachType" label="鐮旂┒绫诲瀷" > </el-table-column> @@ -65,8 +65,7 @@ </el-table-column> <el-table-column prop="endTime" label="缁撴潫鏃堕棿" :formatter="dateFormat_" > </el-table-column> - <el-table-column prop="finish" label="鏄惁缁撴潫" :formatter="finishFotmat" > - </el-table-column> + <el-table-column prop="desp" label="椤圭洰鎻忚堪"> </el-table-column> </el-table> @@ -75,15 +74,26 @@ 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 { + rowData:undefined, loading_table: false, query: "", + dialog_1: false, pagenum: 1, pagesize: 15, total: 0, @@ -100,6 +110,9 @@ this.getData(); }, methods: { + Cancel() { + this.$refs.newProject_.Cancel(); + }, tableChange(val) { this.selected = val; }, @@ -121,10 +134,10 @@ let params = { pageSize: this.pagesize }; + if(query){ params.name = query.name; - params.delay = query.delay; - params.finish = query.fiish; + params.status = query.status; params.type = query.type; } this.$axios.get(url, { @@ -153,6 +166,17 @@ 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 "宸茬粨鏉�"; @@ -160,6 +184,29 @@ 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 + }, } } diff --git a/src/views/login.vue b/src/views/login.vue index 194a614..c126ee2 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -1,20 +1,18 @@ <template> <div class="login"> - <div class="img-container"> + <!-- <div class="img-container"> <img :src="loginImg" alt=""> - </div> - <el-form ref="loginForm" :model="loginForm" class="login-form" auto-complete="on" label-position="left"> - <el-form-item prop="username"> + </div> --> + <el-form ref="loginForm" :model="loginForm" class="login-form" label-position="left"> + <el-form-item prop="loginName"> <el-input - v-model="loginForm.username" + v-model="loginForm.loginName" placeholder="杈撳叆鐢ㄦ埛鍚�" - name="username" + name="loginName" type="text" - auto-complete="on" + > - <span v-show="isClearIconShow" slot="suffix" class="suffix-icon" @click="clearUsername"> - <svg-icon icon-class="close-circle" /> - </span> + </el-input> </el-form-item> <el-form-item prop="password"> @@ -23,7 +21,7 @@ v-model="loginForm.password" placeholder="杈撳叆瀵嗙爜" name="password" - auto-complete="on" + @keyup.enter.native="handleLogin" > <span slot="suffix" class="suffix-icon" :class="{eyeOpen: isOpen}" @click="showPwd"> @@ -31,11 +29,7 @@ </span> </el-input> </el-form-item> - <div class="user-action"> - <a @click="handleForgetPassword"> - <span>蹇樿瀵嗙爜</span> - </a> - </div> + <el-button :loading="loading" class="loginButton" type="primary" @click.native.prevent="handleLogin">鐧诲綍</el-button> </el-form> </div> @@ -47,14 +41,14 @@ * @author Sky */ export default { - name: 'Login', + data () { return { // path: '/' + process.env.VUE_APP_FACTORY_KEY + '/user/confirm-password', - // loginImg: require('@/assets/img/login-logo.png'), + loginImg: require('@/assets/login-left.jpg'), loginForm: { // 琛ㄥ崟鏁版嵁 - username: process.env.VUE_APP_BUILD_MODE === 'production' ? '' : 'bayer_admin', - password: process.env.VUE_APP_BUILD_MODE === 'production' ? '' : '123456' + loginName: '', + password: '' }, passwordType: 'password', // 杈撳叆妗嗙被鍨� loading: false, // 鍔犺浇涓� @@ -62,26 +56,12 @@ isOpen: false // 鏍规嵁鐘舵�佹樉绀轰笉鍚屾牱寮忕被鍚� } }, - computed: { - isClearIconShow () { - return this.loginForm.username.length - } - }, + methods: { // 蹇樿瀵嗙爜鍥炶皟 - handleForgetPassword () { - this.$alert('', '璇疯仈绯诲叕鍙哥鐞嗗憳淇敼瀵嗙爜', { - confirmButtonText: '鐭ラ亾浜�', - center: true, - showClose: true - }) - }, + // 娓呴櫎鐢ㄦ埛鍚� - clearUsername () { - if (this.loginForm.username) { - this.loginForm.username = '' - } - }, + // 瀵嗙爜鏄剧ず鍒囨崲 showPwd () { if (this.passwordType === 'password') { @@ -97,13 +77,34 @@ // 鐧诲綍 handleLogin () { - localStorage.setItem('userId','user001'); - this.$router.push('/'); + let url = "/api/user/login"; + let params = this.loginForm; + this.$axios.get(url,{ + params + }).then(data_ => { + console.log(data_); + if(data_.data.success) { + localStorage.setItem('userId',data_.data.data.id); + localStorage.setItem('userName',data_.data.data.id); + localStorage.setItem('roleId',data_.data.data.roleCode); + localStorage.setItem('roleName',data_.data.data.roleName); + localStorage.setItem('departId',data_.data.data.departCode); + localStorage.setItem('departName',data_.data.data.departName); + this.$router.push('/'); + }else { + this.$message({message:'鐧婚檰澶辫触', type: 'warning'}); + } + + }).catch(error =>{ + console.log(error); + }) + + }, } } </script> -<style rel="stylesheet/scss" lang="scss"> +<style > </style> -- Gitblit v1.8.0