stjdydayou 3 лет назад
Родитель
Сommit
a51af675f5
4 измененных файлов с 199 добавлено и 2 удалено
  1. 9 0
      src/api/open_website.js
  2. 2 2
      src/router/index.js
  3. 73 0
      src/views/openWebsite/DialogForm.vue
  4. 115 0
      src/views/openWebsite/index.vue

+ 9 - 0
src/api/open_website.js

@@ -0,0 +1,9 @@
+import request from '@/utils/request'
+
+export function findPage(data) {
+  return request({
+    url: '/openWebsite/findPage',
+    method: 'post',
+    data
+  })
+}

+ 2 - 2
src/router/index.js

@@ -262,8 +262,8 @@ export const asyncRoutes = [
       {
         path: 'openWebsite',
         name: 'OpenWebsite',
-        component: () => import('@/views/appKey/requestLogs'),
-        meta: { title: '文旅数据开放网站', authorities: ['app.key.request.logs'] }
+        component: () => import('@/views/openWebsite'),
+        meta: { title: '文旅数据开放网站', authorities: ['open.website.find'] }
       }
     ]
   },

+ 73 - 0
src/views/openWebsite/DialogForm.vue

@@ -0,0 +1,73 @@
+<template>
+  <el-dialog
+    v-if="visible"
+    width="600px"
+    :title="form.id?'编辑文旅数据开放网站':'新建文旅数据开放网站'"
+    :visible.sync="visible"
+  >
+    <el-form v-loading="isLoading" :model="form" label-width="100px" label-position="top">
+      <el-form-item label="网站标题">
+        <el-input v-model="form.title"/>
+      </el-form-item>
+      <el-form-item label="网站URL">
+        <el-input v-model="form.url"/>
+      </el-form-item>
+      <el-form-item label="备注说明">
+        <el-input v-model="form.remark"/>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" class="dialog-footer">
+      <el-button @click="visible = false">取 消</el-button>
+      <el-button type="primary" @click="handleSubmit">确 定</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+
+import { uploaderHandle } from '@/api/statistics/upload'
+import { findDataBaseInfoExtends, save, updateById, findAllDataType } from '@/api/place/base_info'
+
+export default {
+  components: {},
+  data() {
+    return {
+      visible: false,
+      isLoading: false,
+      form: {}
+    }
+  },
+  mounted() {
+  },
+  methods: {
+    open(data) {
+      this.visible = true
+      this.isLoading = false
+    },
+    handleSubmit() {
+      const litpics = []
+      this.fileList.forEach(o => {
+        litpics.push(o.url)
+      })
+      const param = { ...this.form, listExtends: this.listExtendColumn, lng: this.lng, lat: this.lat, litpics }
+
+      console.log(param.listExtends)
+      if (this.form.id) {
+        updateById(this.form.id, param).then(() => {
+          this.visible = false
+          this.$emit('ok')
+        }).finally(() => {
+          this.isLoading = false
+        })
+      } else {
+        save(param).then(res => {
+          this.visible = false
+          this.$emit('ok')
+        }).finally(() => {
+          this.isLoading = false
+        })
+      }
+    }
+  }
+}
+</script>

+ 115 - 0
src/views/openWebsite/index.vue

@@ -0,0 +1,115 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryForm" inline size="small">
+      <el-form-item label="关键词">
+        <el-input v-model="queryForm.name" placeholder="关键词"/>
+      </el-form-item>
+    </el-form>
+    <el-row class="action-bar-container" type="flex" justify="end">
+      <el-button type="primary" size="small" @click.native="fetchData">查询</el-button>
+      <el-button-group>
+        <el-button v-permission="['place.base.info.add']" size="small" @click.native="$refs.dialogForm.open({})">
+          新建
+        </el-button>
+        <el-button v-permission="['place.base.info.delete']" size="small" @click.native="deleteByIds(multipleSelection)">
+          删除
+        </el-button>
+      </el-button-group>
+    </el-row>
+    <el-table
+      v-loading="isLoading"
+      :data="pageData.records"
+      border
+      fit
+      highlight-current-row
+      @selection-change="selectionChange"
+    >
+      <el-table-column type="selection" width="55" fixed="left"/>
+      <el-table-column label="ID" prop="id" width="150"/>
+      <el-table-column label="名称" prop="name" min-width="200"/>
+      <el-table-column label="缩略图" width="80">
+        <template slot-scope="scope">
+          {{ scope.row.litpics.length }}张
+        </template>
+      </el-table-column>
+      <el-table-column label="地址" prop="address" min-width="350"/>
+      <el-table-column label="分类" prop="category.name" width="100"/>
+      <el-table-column label="联系人" prop="contacts" width="100"/>
+      <el-table-column label="联系电话" prop="contactNumber" width="150"/>
+      <el-table-column label="位置信息" width="200">
+        <template slot-scope="scope">
+          [ {{ scope.row.lng }}, {{ scope.row.lat }} ]
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" width="70" fixed="right">
+        <template slot-scope="scope">
+          <el-button v-permission="['place.base.info.edit']" type="text" @click.native="$refs.dialogForm.open(scope.row)">编辑</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination
+      class="pagination-container"
+      background
+      layout="prev, pager, next"
+      :total="pageData.total"
+      :page-size="pageData.pageSize"
+      @current-change="paginationChange"
+    />
+    <dialog-form ref="dialogForm" @ok="fetchData"/>
+  </div>
+</template>
+
+<script>
+import { findPage } from '@/api/open_website'
+import { dateTimeFormatter } from '@/utils/formater'
+import DialogForm from './DialogForm'
+
+export default {
+  components: { DialogForm },
+  data() {
+    return {
+      queryForm: {},
+      isLoading: true,
+      pageData: {},
+      currentPage: 1,
+      multipleSelection: []
+    }
+  },
+  created() {
+    this.fetchData()
+  },
+  methods: {
+    dateTimeFormatter,
+    selectionChange(val) {
+      const temp = []
+      val.forEach(o => {
+        temp.push(o.id)
+      })
+      this.multipleSelection = temp
+    },
+    deleteByIds(ids) {
+      this.$confirm('确认要删除吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        deleteByIds(ids).then(() => {
+          this.fetchData()
+        })
+      })
+    },
+    paginationChange(val) {
+      this.currentPage = val
+      this.fetchData()
+    },
+    fetchData() {
+      this.isLoading = true
+      findPage({ ...this.queryForm, current: this.currentPage })
+        .then((response) => {
+          this.pageData = response
+        })
+        .finally(() => (this.isLoading = false))
+    }
+  }
+}
+</script>