From 11317bf89e4d4194f84229c3d89a786b323c6be4 Mon Sep 17 00:00:00 2001 From: kimi <kimi42345@gmail.com> Date: 星期四, 23 一月 2020 15:16:16 +0800 Subject: [PATCH] merge --- src/components/square.vue | 306 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 281 insertions(+), 25 deletions(-) diff --git a/src/components/square.vue b/src/components/square.vue index cf30081..f7c0a4c 100644 --- a/src/components/square.vue +++ b/src/components/square.vue @@ -1,57 +1,313 @@ <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="infinite-list-wrapper" style="overflow:auto; height: 70vh; border-top: 1px solid #c3c5c7;"> + + <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="20"><div class="grid-content z_grid-content1 grid-content_text">{{one.title}}</div></el-col> + <el-col :span="4"><div class="grid-content z_grid-content1 grid-content_time">{{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 z_grid-content2">{{one.desp}}</div></el-col> </el-row> - </li> - </ul> + </div> + </div> <p v-if="loading">鍔犺浇涓�...</p> <p v-if="noMore">娌℃湁鏇村浜�</p> </div> + <el-dialog + title="璇︽儏" + :visible.sync="dialogVisible" + width="40%" + height="40%" + custom-class="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 && selectOne.attachment != ''" type="primary" @click="download(selectOne)">涓� 杞�</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.title" 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" + :action="uploadUrl" + :on-preview="handlePreview" + :data="form" + :limit="3" + :auto-upload='false' + ref="upload" + :on-change="onChange" + :on-exceed="handleExceed" + :on-success="uploadSuccess" + > + <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="createTopic">纭� 瀹�</el-button> + </div> + </el-dialog> + <div style="width: 0px; height: 0px;"> + <iframe ref="frame_export" style="width: 0px; height: 0px;"></iframe> + </div> + </div> </template> <script> - import squareList from "./squareList.vue"; - export default { data() { return { + uploadUrl:"/api/api/file/topicUpload", + form:{}, + pageno:1, + total:0, + maxPage:0, + fileList: [], + dialogVisible: false, + dialogFormVisible: false, + labelPosition: "right", + 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"}, - ], - loading: false + // {id:1,attachment:"222",title:"鏍囬", desp:"鎻忚堪鏃跺彂鐢熺籂绾峰徃绗﹀悎鍙屾柟閰掑彑鍙戝姩鏈烘椂浠e嘲宄婚厤鐢甸棿 鍒�鐗囨満姘寸數璐规悳璞嗚厫鐨悳鐨勭湅娉曟垜閮藉彨鎵撶牬鏄寰楁壒鍙戝晢闄勫姞璐圭涓夊搴︾牬鍙戞帴鏀跺埌鍙戝湴鏂瑰氨鎼滃埌鍒板洓鐐瑰垎鍙戝伓璇诲洤", 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"}, + // {id:1,attachment:"",title:"11", desp:"111", time:"11111"}, + // {id:1,attachment:"",title:"11", desp:"111", time:"11111"}, + // {id:1,attachment:"",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, + } }, computed: { noMore() { - return this.count >= 20 + return this.maxPage == this.pageno }, disabled() { return this.loading || this.noMore } }, + mounted() { + this.getData(); + }, methods: { + download(val) { + if(val) { + this.$refs.frame_export.src = "/api/api/file/download/" + val.id; + }else { + this.$message({message:'鑾峰彇鍦板潃澶辫触', type: 'warning'}); + } + + }, + uploadSuccess() { + this.dialogFormVisible = false; + }, + onChange(file, fileList) { + this.fileList = []; + this.fileList = fileList; + }, + createTopic() { + let me = this; + var userId = localStorage.getItem('userId'); + if(!userId) { + this.$router.push('/login'); + } + this.form.userId = userId; + let params = this.form; + + if(this.fileList.length == 0) { + //涓嶅甫闄勪欢 + let url = "/api/topic/add"; + this.$axios.get(url, { + params + }) + .then(data_ => { + if(data_.data.success) { + this.$message('鍒涘缓鎴愬姛'); + me.dialogFormVisible = false; + }else { + this.$message({message:'璇濋鍒涘缓澶辫触', type: 'warning'}); + } + }).catch(error => { + console.log(error); + }) + }else { + this.$refs.upload.submit(); + } + }, + handleRemove(file, fileList) { + console.log(file, fileList); + }, + handlePreview(file) { + console.log(file); + }, + handleExceed(files, fileList) { + this.$message.warning(`褰撳墠闄愬埗閫夋嫨 1 涓枃浠讹紝鏈閫夋嫨浜� ${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) - } + + if(me.pageno < me.maxPage) { + me.pageno++; + } + query_(); + + + }, + showItem(one) { + this.dialogVisible = true; + this.selectOne = one; + }, + createNew() { + this.dialogFormVisible = true; + }, + empty_() { + this.formInline = {}; + this.query_(); + }, + query_() { + this.getData(this.formInline, true); + }, + getData(query,empty) { + if(empty) { + this.dataList = []; + } + let me = this; + this.loading = true + this.loading_table = true; + let pageno = this.pagenum; + let url = "/api/topic/page/" + this.pageno; + let params = {}; + if(query){ + params.title = query.title; + params.desp = query.desp; + } + this.$axios.get(url, { + params + }) + .then(data_ => { + console.log(data_); + if(data_.data.success) { + me.dataList.push.apply(me.dataList, data_.data.data.records) + me.t + otal = data_.data.data.total; + me.pageno = data_.data.data.pageno; + me.maxPage = data_.data.data.maxPage; + + + } + me.loading = false + }).catch(error => { + console.log(error); + me.loading = false + }) + }, } } </script> <style> + .grid-content{ + text-align: left; + padding: 5px; + } + + .grid-content_text { + font-weight: bold; + font-style: italic; + color: #000; + } + .grid-content_time { + font-weight: bold; + font-style: italic; + color: #909399; + } + .z_grid-content1{ + display:table-cell; + vertical-align:bottom; + height: 50px; + } + .z_grid-content2{ + color: #83878a; + padding: 0px; + height: 40px; + line-height: 40px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .content{ + + } + + .form-inline { + text-align: left; + } + + .list { + + } + .list-item { + margin-top: 20px; + padding-bottom: 5px; + border-bottom: 1px solid #c3c5c7; + } + + .handleClose { + margin: 10px; + text-align: left; + } + .handleClose .el-dialog__body { + padding: 10px 20px; + } + .handleClose .el-divider--horizontal{ + margin: 5px; + } </style> -- Gitblit v1.8.0