123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- <!-- -->
- <template>
- <div>
- <main-top :crumb="crumbData"></main-top>
- <div class="table-interface">
- <div class="top-body">
- <div class="info-top">
- <div class="info-left">
- <span>按文物类别查看:</span>
- <el-select style="width:100px;" v-model="typeId" placeholder="请选择">
- <el-option label="全部" value=""></el-option>
- <el-option v-for="(item,i) in plist" :key="i" :label="item.name" :value="item.id"></el-option>
- </el-select>
- <span style="margin-left:20px;">按文物年代查看:</span>
- <el-select style="width:180px; text-align:center;" v-model="timeId" placeholder="请选择">
- <el-option label="全部" value=""></el-option>
- <el-option v-for="(item,i) in tlist" :key="i" :label="item.name" :value="item.id"></el-option>
- </el-select>
- <el-input style="width:220px;margin:0 20px;" v-model="inputKey" placeholder="请输入文物名称搜索"></el-input>
- <el-button type="primary" @click="getInformation">查找</el-button>
- <el-button @click="inputKey=''">重置</el-button>
- <el-select style="margin-left:20px;" @change="piliang" :value="'批量导入 '" placeholder="请选择">
- <el-option
- label="模板下载"
- value="模板下载">
- </el-option>
- <el-option
- label="批量导入"
- value="批量导入">
- </el-option>
- </el-select>
- <input @change="uploadChange" class="upload-btn" ref="upload" type="file">
- </div>
- <div class="info-right">
- <el-button type="primary" @click="$router.push({name:'edit-cultural-relic',params:{type:0}})">新增文物</el-button>
- </div>
- </div>
- <div class="collection-con">
- <ul>
- <li class="theme-color" @click="gotoShow(item)" v-for="(item,i) in tableData" :key="i">
- <div class="li-img">
- <el-image :fit="'cover'" style="width:100%;height:100%;" :src="item.unityPic"></el-image>
- <!-- <div class="liulan"><span>浏览量: {{Math.round(Math.random()*100000)}}</span> 点赞数: {{Math.round(Math.random()*1000)}}</div> -->
- </div>
- <div>{{item.timeName}} {{item.typeName}} <span @click.stop="del(item)" class="del">删除</span></div>
- <p>{{item.name}}</p>
- </li>
- </ul>
- </div>
- <div class="e-pagination">
- <el-pagination
- @current-change="handleCurrentChange"
- :current-page.sync="currentPage"
- :page-size="size"
- layout="prev, pager, next, jumper"
- :total="total"
- ></el-pagination>
- </div>
- </div>
- </div>
- </div>
- </template>
- <script>
- // 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
- // 例如:import 《组件名称》 from '《组件路径》';
- import MainTop from '@/components/main-top'
- import SearchBar from '@/components/search-bar'
- const crumbData = [
- {
- name: '文物库',
- id: 4
- }
- ]
- export default {
- // import引入的组件需要注入到对象中才能使用
- components: {
- MainTop,
- SearchBar
- },
- data () {
- return {
- crumbData,
- tableData: [],
- inputKey: '',
- currentPage: 1,
- size: 20,
- total: 0,
- loading: false,
- plist: [],
- tlist: [],
- typeId: '',
- timeId: ''
- }
- },
- watch: {
- currentPage () {
- this.refresh()
- },
- size () {
- this.refresh()
- },
- inputKey () {
- this.refresh()
- }
- },
- mounted () {
- this.getPositionList()
- this.getTypeList()
- this.refresh()
- },
- methods: {
- del (item) {
- let data = {
- id: item.id
- }
- this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.$http.post('/collection/deleteCollection', data).then(res => {
- if (res.code === 0) {
- this.$notify.success({
- title: '提示',
- message: '删除成功',
- duration: 2000
- })
- this.refresh()
- } else {
- this.$notify.error({
- title: '错误',
- message: res.msg,
- duration: 2000
- })
- }
- })
- }).catch(() => {
- this.$message({
- type: 'info',
- message: '已取消删除'
- })
- })
- },
- async uploadChange (e) {
- let file = e.target.files[0]
- let formData = new FormData()
- formData.append('file', file)
- const res = await this.$http.post(
- '/collection/importCollection',
- formData,
- {'Content-Type': 'multipart/form-data'})
- if (res.code === 0) {
- this.$alert(`上传成功`, '提示', {
- confirmButtonText: '确定',
- callback: action => {
- this.refresh()
- }
- })
- } else {
- this.$alert(`上传失败,${res.msg}`, '提示', {
- confirmButtonText: '确定',
- callback: action => {
- this.refresh()
- }
- })
- }
- },
- piliang (data) {
- if (data === '模板下载') {
- window.open('/collection/importData.xlsx', '_blank')
- } else {
- this.$refs.upload.click()
- }
- },
- async getPositionList () {
- let result = await this.$http({
- method: 'post',
- data: {
- state: 0
- },
- url: '/collection/typeList'
- })
- this.plist = result.data
- },
- async getTypeList () {
- let result = await this.$http({
- method: 'post',
- url: '/collection/timeList'
- })
- this.tlist = result.data
- },
- gotoShow (item) {
- this.$router.push({ name: 'show-cultural-relic', params: { id: item.id } })
- },
- goto (item) {
- window.localStorage.setItem('editCollection', JSON.stringify(item))
- this.$router.push({ name: 'edit-collection', params: { type: 1 } })
- },
- refresh () {
- this.loading = true
- this.getInformation()
- this.loading = false
- },
- handleCurrentChange (val) {
- this.currentPage = val
- },
- async getInformation () {
- let params = {
- name: this.inputKey,
- typeId: this.typeId,
- timeId: this.timeId,
- pageNum: this.currentPage,
- pageSize: this.size
- }
- let result = await this.$http({
- method: 'post',
- data: params,
- url: '/collection/list'
- })
- if (result.code !== 0) {
- return
- }
- this.tableData = result.data.list
- this.total = result.data.total
- }
- }
- }
- </script>
- <style scoped>
- /* 引入公共css类 */
- @import url(./style);
- </style>
|