MONSTER-ygh 1 år sedan
förälder
incheckning
233cc9de06

+ 39 - 298
src/views/tourism/scenicAreaManagement/contentManagement/attractionInfo.vue

@@ -1,321 +1,62 @@
 <template>
   <div class="app-container">
     <el-row :gutter="20">
-      <!--用户数据-->
-      <el-col :span="24" :xs="24">
-        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-          <el-form-item label="用户名称" prop="name">
-            <el-input
-              v-model="queryParams.name"
-              placeholder="请输入用户名称"
-              clearable
-              style="width: 240px"
-              @keyup.enter.native="handleQuery"
-            />
-          </el-form-item>
-          <el-form-item label="手机号码" prop="mobile">
-            <el-input
-              v-model="queryParams.mobile"
-              placeholder="请输入手机号码"
-              clearable
-              style="width: 240px"
-              @keyup.enter.native="handleQuery"
-            />
-          </el-form-item>
-          <el-form-item label="状态" prop="status">
-            <el-select
-              v-model="queryParams.status"
-              placeholder="用户状态"
-              clearable
-              style="width: 240px"
-            >
-              <el-option
-                v-for="dict in dict.type.sys_normal_disable"
-                :key="dict.value"
-                :label="dict.label"
-                :value="dict.value"
-              />
-            </el-select>
-          </el-form-item>
-          <el-form-item label="创建时间">
-            <el-date-picker
-              v-model="dateRange"
-              style="width: 240px"
-              value-format="yyyy-MM-dd"
-              type="daterange"
-              range-separator="-"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-            ></el-date-picker>
-          </el-form-item>
-          <el-form-item>
-            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-          </el-form-item>
-        </el-form>
+      <el-tabs v-model="activeName" @tab-click="initData">
+        <el-tab-pane label="基本信息" name="first"></el-tab-pane>
+        <el-tab-pane label="景区介绍" name="second"></el-tab-pane>
+        <el-tab-pane label="景区文化" name="third"></el-tab-pane>
+      </el-tabs>
+      <!--基本信息-->
+      <div style="width: 100%;" v-if="activeName == 'first'">
+        <attractionInfoBeas ref="attractionInfoBeas" />
+      </div>
 
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-            <el-button
-              type="primary"
-              plain
-              icon="el-icon-plus"
-              size="mini"
-              @click="handleAdd"
-              v-hasPermi="configPermi.add"
-            >新增</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button
-              type="danger"
-              plain
-              icon="el-icon-delete"
-              size="mini"
-              :disabled="multiple"
-              @click="handleDelete"
-              v-hasPermi="configPermi.delect"
-            >删除</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button
-              type="info"
-              plain
-              icon="el-icon-upload2"
-              size="mini"
-              @click="handleImport"
-              v-hasPermi="configPermi.upload"
-            >导入</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button
-              type="warning"
-              plain
-              icon="el-icon-download"
-              size="mini"
-              @click="handleExport"
-              v-hasPermi="configPermi.export"
-            >导出</el-button>
-          </el-col>
-          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
-        </el-row>
-
-        <el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange">
-          <el-table-column type="selection" width="50" align="center" />
-          <el-table-column label="用户编号" align="center" key="id" prop="id" v-if="columns[0].visible" />
-          <el-table-column label="用户名称" align="center" key="name" prop="name" v-if="columns[1].visible" :show-overflow-tooltip="true" />
-          <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
-          <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
-          <el-table-column label="手机号码" align="center" key="mobile" prop="mobile" v-if="columns[4].visible" width="120" />
-          <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
-            <template slot-scope="scope">
-              <el-switch
-                v-model="scope.row.status"
-                active-value="0"
-                inactive-value="1"
-                @change="handleStatusChange(scope.row)"
-              ></el-switch>
-            </template>
-          </el-table-column>
-          <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
-            <template slot-scope="scope">
-              <span>{{ parseTime(scope.row.createTime) }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column
-            label="操作"
-            align="center"
-            width="160"
-            class-name="small-padding fixed-width"
-          >
-            <template slot-scope="scope" v-if="scope.row.id !== 1">
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-document"
-                @click="handleDetails(scope.row)"
-                v-hasPermi="configPermi.details"
-              >详情</el-button>
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-edit"
-                @click="handleUpdate(scope.row)"
-                v-hasPermi="configPermi.edit"
-              >修改</el-button>
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-delete"
-                @click="handleDelete(scope.row)"
-                v-hasPermi="configPermi.delect"
-              >删除</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-
-        <pagination
-          v-show="total>0"
-          :total="total"
-          :page.sync="queryParams.pageNum"
-          :limit.sync="queryParams.pageSize"
-          @pagination="getList"
-        />
-      </el-col>
+      <!--景区介绍-->
+      <div style="width: 100%;" v-if="activeName == 'second'">
+        <attractionInfoIntroduce ref="attractionInfoIntroduce" />
+      </div>
+      <!--景区文化-->
+      <div style="width: 100%;" v-if="activeName == 'third'">
+        <attractionInfoCulture ref="attractionInfoCulture" />
+      </div>
     </el-row>
-
-    <!--  导入  -->
-    <uploadBox ref="upload" @refresh="handleQuery" />
-    <!--  新增或修改  -->
-    <addAndEdit ref="addAndEdit" @refresh="getList" />
   </div>
 </template>
 
 <script>
-import { 
-  listTableApi, 
-  delTableApi, 
-  } from "@/api/CURD";
-import addAndEdit from "./formBox/attractionInfoForm.vue"
+import attractionInfoBeas from './tabelBox/attractionInfoBeas.vue';
+import attractionInfoIntroduce from "./tabelBox/attractionInfoIntroduce.vue"
+import attractionInfoCulture from "./tabelBox/attractionInfoCulture.vue"
 export default {
-  name: "User",
-  dicts: ['sys_normal_disable', 'sys_user_sex'],
-  components: {addAndEdit},
+  name: "AttractionInfo",
+  dicts: [],
+  components: {attractionInfoBeas,attractionInfoIntroduce,attractionInfoCulture},
   data() {
     return {
       title: "景区信息",// 通用标题
-      configPermi: {
-        add: ['system:user:edit'], // 新增权限
-        details: ['system:user:details'], // 详情权限
-        delect: ['system:user:remove'], // 删除权限
-        edit: ['system:user:edit'], // 编辑权限
-        upload: ['system:user:upload'],// 导入权限
-        export: ['system:user:export'],// 导出权限
-      },
-      configUrl: {
-        list: '/merchant/merchantSysuser/pageList', // 列表地址
-        delect: '/merchant/merchantSysuser/', // 删除地址
-        upload: 'system/user/importTemplate',// 导入地址
-        download:'system/user/importTemplate', // 下载模板地址
-        export: '/system/user/importData',// 导出地址
-      },
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 用户表格数据
-      tableList: null,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-      },
-      dateRange: [],
-      // 控制列表是否显示
-      columns: [
-        { key: 0, label: `用户编号`, visible: true },
-        { key: 1, label: `用户名称`, visible: true },
-        { key: 2, label: `用户昵称`, visible: true },
-        { key: 3, label: `部门`, visible: true },
-        { key: 4, label: `手机号码`, visible: true },
-        { key: 5, label: `状态`, visible: true },
-        { key: 6, label: `创建时间`, visible: true }
-      ],
+      activeName: 'first',
     };
   },
   created() {
-    this.getList();
+    this.initData()
   },
   methods: {
-    /** 查询用户列表 */
-    getList() {
-      this.loading = true;
-      listTableApi(
-        this.configUrl.list,
-        this.addDateRange(
-          this.queryParams, 
-          this.dateRange)).then(response => {
-            this.tableList = response.data.rows;
-            this.total = response.data.total;
-            this.loading = false;
-        }
-      ).catch (error=>{
-        console.error('获取列表失败!!!!',error)
-        this.tableList = [];
-        this.total = 0;
-        this.loading = false
-      }) 
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.dateRange = [];
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id);
-      this.single = selection.length != 1;
-      this.multiple = !selection.length;
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      if(this.$refs.addAndEdit) {
-        this.$refs.addAndEdit.initData(this.title + '新增', "EDIT",{})
-      }
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      if(this.$refs.addAndEdit) {
-        this.$refs.addAndEdit.initData(this.title + '编辑', "EDITInit",{...row})
-      }
-    },
-    handleDetails(row){
-      if(this.$refs.detailsBox) {
-        this.$refs.detailsBox.initData(this.title + '详情',"DEATILSInit", row)
-      }
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除用户编号为"' + ids + '"的数据项?').then( ()=> {
-        return delTableApi(this.configUrl.delect,ids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download(this.configUrl.export, {
-        ...this.queryParams
-      }, `${this.title }_${new Date().getTime()}.xlsx`)
-    },
-    /** 导入按钮操作 */
-    handleImport() {
-      if(this.$refs.upload) {
-        this.$refs.upload.initData({
-          width: '400px',
-          // 弹出层标题(用户导入)
-          title: this.title + "导入",
-          // 下载模板地址
-          importTemplate: this.configUrl.download,
-          // 上传的地址
-          url: this.configUrl.upload
+    /** 切换  数据  */
+    initData(){
+      if(this.activeName == 'first'){
+        this.$nextTick(()=>{
+          this.$refs.attractionInfoBeas.initData()
+        })
+      }else if(this.activeName == 'second') {
+        this.$nextTick(()=>{
+          this.$refs.attractionInfoIntroduce.initData()
+        })
+      }else if(this.activeName == 'third') {
+        this.$nextTick(()=>{
+          this.$refs.attractionInfoCulture.initData()
         })
       }
-    },
+    }
   }
 };
 </script>

+ 188 - 0
src/views/tourism/scenicAreaManagement/contentManagement/tabelBox/attractionInfoBeas.vue

@@ -0,0 +1,188 @@
+<template>
+    <div 
+    style="padding: 40px;"
+    v-loading="loading"
+    :element-loading-text="loadingText"
+    element-loading-spinner="el-icon-loading"
+    element-loading-background="rgba(0, 0, 0, 0.8)"
+    >
+        <el-form :model="form" ref="form" size="small" :rules="rules" label-width="120px">
+          <el-form-item label="景区名称" prop="scenicName">
+            <el-input
+              v-model="form.scenicName"
+              placeholder="请输入景区名称"
+              clearable
+              style="width: 300px"
+            />
+          </el-form-item>
+          <el-form-item label="开放时间" prop="developDate">
+            <el-date-picker
+            style="width: 300px"
+            v-model="form.developDate"
+            type="date"
+            placeholder="请选择开放时间">
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="联系电话" prop="scenicPhone">
+            <el-input
+              v-model="form.scenicPhone"
+              placeholder="请输入联系电话"
+              clearable
+              style="width: 300px"
+            />
+          </el-form-item>
+          <el-form-item label="景区地址" prop="scenicAddress">
+            <el-input
+              v-model="form.scenicAddress"
+              placeholder="请输入景区地址"
+              clearable
+              style="width: 300px"
+            />
+          </el-form-item>
+          <div>
+            <el-form-item label="经度" prop="longitude">
+                <el-input
+                v-model="form.longitude"
+                placeholder="请输入经度"
+                clearable
+                style="width: 300px"
+                />
+            </el-form-item>
+            <el-form-item label="纬度" prop="latitude">
+                
+                <el-input
+                v-model="form.latitude"
+                placeholder="请输入纬度"
+                clearable
+                style="width: 300px"
+                />
+            </el-form-item>   
+          </div>
+          
+          <el-form-item>
+            <el-button
+                type="primary"
+                @click="submitForm"
+                :loading="loading"
+                element-loading-text="提交中..."
+                element-loading-spinner="el-icon-loading"
+                element-loading-background="rgba(0, 0, 0, 0.8)"
+            > 
+                {{ loading ? '提交中...' : '保存' }}
+            </el-button>
+          </el-form-item>
+        </el-form>
+    </div>
+</template>
+<script>
+import { 
+  getTableDeatilsByIdApi,
+  updateTableApi,
+ } from '@/api/CURD'
+export default {
+  name: "AttractionInfoBeas",
+  dicts: [],
+  components: {},
+  data() {
+    return {
+        title: "基本信息",// 通用标题
+        loading: false,
+        loadingText: "拼命加载数据中...",
+        configPermi: {
+            add: ['system:user:edit'], // 新增权限
+            details: ['system:user:details'], // 详情权限
+            delect: ['system:user:remove'], // 删除权限
+            edit: ['system:user:edit'], // 编辑权限http://localhost/scenicAreaManagement/contentManagement/scenicAreaManagement/contentManagement/questions
+            upload: ['system:user:upload'],// 导入权限
+            export: ['system:user:export'],// 导出权限http://localhost/scenicAreaManagement/contentManagement/scenicAreaManagement/contentManagement/suggestions
+            release: ['system:user:release']
+        },
+        configUrl: {
+            details: '/merchant/merchantInfo/getMerchantInfo', // 详情地址
+            edit: '/merchant/merchantInfo/updateScenic', // 编辑地址
+        },
+        form: {},
+        rules: {
+            scenicName: [{ required: true, message: "请输入标题名称", trigger: ["change","blur"] }],
+            developDate: [{ required: true, message: "请选择开放时间", trigger: ["change","blur"] }],
+            scenicPhone: [{ required: true, message: "请输入联系电话", trigger: ["change","blur"] }],
+            scenicAddress: [{ required: true, message: "请输入景区地址", trigger: ["change","blur"] }],
+            longitude: [{ required: true, message: "请输入经度", trigger: ["change","blur"] }],
+            latitude: [{ required: true, message: "请输入纬度", trigger: ["change","blur"] }],
+        },
+    }
+  },
+  methods: {
+    /**  初始化  */
+    initData() {
+        this.loadingText = "拼命加载数据中..."
+        this.loading = true
+        this.getTableDeatilsFun()
+    },
+    /** 获取详情 */
+    async getTableDeatilsFun(row) {
+      this.loading = true
+      try {
+        let res = await getTableDeatilsByIdApi(this.configUrl.details,{})
+        if(res.code == 200) {
+          let obj = {
+          ...res.data
+        }
+          this.$set(this,'form',JSON.parse(JSON.stringify(obj)))
+          this.formStatus = 1
+        }else {
+          this.$message.error('获取详情失败!!!');
+          this.formStatus = 2
+          this.loading = false
+          this.open = false;
+        }
+        this.$nextTick(()=>{
+            this.reset()
+        })
+        this.loading = false
+      } catch (error) {
+        console.error('获取详情失败!!!!',error)
+        this.formStatus = 2
+        this.loading = false
+        this.open = false;
+      }
+    },
+    /**
+     * 保存
+     * @date 2023-11-22
+     * @returns {any}
+     */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.loadingText = "提交数据中..."
+          this.loading = true
+          updateTableApi(
+            this.configUrl.edit,{
+            ...this.form
+            }).then(response => {
+            this.$modal.msgSuccess("修改成功");
+            this.loading = false
+            this.initData()
+            }).catch(()=>{
+            this.$message.error("修改失败!!!");
+            this.loading = false
+        })
+        }
+      });
+    },
+    /**
+     * 重置
+     * @date 2023-11-22
+     * @returns {any}
+     */
+    reset() {
+      if(this.$refs["form"]) {
+        this.$refs["form"].clearValidate();
+      }
+    },
+  },
+}
+</script>
+<style lang="scss" scoped>
+</style>

+ 0 - 0
src/views/tourism/scenicAreaManagement/contentManagement/tabelBox/attractionInfoCulture.vue


+ 332 - 0
src/views/tourism/scenicAreaManagement/contentManagement/tabelBox/attractionInfoIntroduce.vue

@@ -0,0 +1,332 @@
+<template>
+    <div class="app-container">
+      <el-row :gutter="20">
+        <!--用户数据-->
+        <el-col :span="24" :xs="24">
+            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+                <el-form-item label="标题名称" prop="title">
+                    <el-input
+                    v-model="queryParams.title"
+                    placeholder="请输入标题名称"
+                    clearable
+                    style="width: 240px"
+                    @keyup.enter.native="handleQuery"
+                    />
+                </el-form-item>
+                <el-form-item label="发布时间" prop="time">
+                    <el-date-picker
+                    v-model="queryParams.time"
+                    type="datetimerange"
+                    range-separator="至"
+                    start-placeholder="开始日期"
+                    value-format="yyyy-MM-dd HH:mm:ss"
+                    end-placeholder="结束日期">
+                    </el-date-picker>
+                </el-form-item>
+                <el-form-item>
+                    <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+                    <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+                </el-form-item>
+            </el-form>
+          <el-row :gutter="10" class="mb8">
+            <el-col :span="1.5">
+              <el-button
+                type="primary"
+                plain
+                icon="el-icon-plus"
+                size="mini"
+                @click="handleAdd"
+                v-hasPermi="configPermi.add"
+              >新增</el-button>
+            </el-col>
+            <el-col :span="1.5" v-if="false">
+              <el-button
+                type="danger"
+                plain
+                icon="el-icon-delete"
+                size="mini"
+                :disabled="multiple"
+                @click="handleDelete"
+                v-hasPermi="configPermi.delect"
+              >删除</el-button>
+            </el-col>
+            <el-col :span="1.5" v-if="false">
+              <el-button
+                type="info"
+                plain
+                icon="el-icon-upload2"
+                size="mini"
+                @click="handleImport"
+                v-hasPermi="configPermi.upload"
+              >导入</el-button>
+            </el-col>
+            <el-col :span="1.5" v-if="false">
+              <el-button
+                type="warning"
+                plain
+                icon="el-icon-download"
+                size="mini"
+                @click="handleExport"
+                v-hasPermi="configPermi.export"
+              >导出</el-button>
+            </el-col>
+            <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
+          </el-row>
+  
+          <el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange">
+            <el-table-column type="index" label="序号" align="center"  />
+            <el-table-column label="标题" align="center" key="titleName" prop="titleName" v-if="columns[0].visible">
+              <template slot-scope="scope">
+                <el-tooltip class="item" effect="dark" :content="scope.row.name" placement="top">
+                  <div style="width: 100%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">
+                    <span style="width: 100%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">{{ scope.row.titleName }}</span>
+                  </div>
+                </el-tooltip>
+              </template>
+            </el-table-column>
+            <el-table-column label="摘要" align="center" key="contentMain" prop="contentMain" v-if="columns[1].visible">
+              <template slot-scope="scope">
+                <el-tooltip class="item" effect="dark" :content="scope.row.name" placement="top">
+                  <div style="width: 100%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">
+                    <span style="width: 100%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">{{ scope.row.contentMain }}</span>
+                  </div>
+                </el-tooltip>
+              </template>
+            </el-table-column>
+            <el-table-column label="创建人" align="center" key="createBy" prop="createBy" v-if="columns[2].visible" />
+            <el-table-column label="创建时间" align="center" key="createTime" prop="createTime" v-if="columns[3].visible" />
+            <el-table-column label="状态" align="center" key="status" v-if="columns[4].visible">
+              <template slot-scope="scope">
+                <dict-tag :options="dict.type.tourism_online_status" :value="scope.row.status"/>
+              </template>
+            </el-table-column>
+            <el-table-column
+              label="操作"
+              align="center"
+              width="160"
+              class-name="small-padding fixed-width"
+            >
+              <template slot-scope="scope" v-if="scope.row.id !== 1">
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-document"
+                  @click="handleRelease(scope.row)"
+                  v-hasPermi="configPermi.release"
+                >{{ scope.row.status == 1 ? '启用' : '禁用' }}</el-button>
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-edit"
+                  @click="handleUpdate(scope.row)"
+                  v-hasPermi="configPermi.edit"
+                >修改</el-button>
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-delete"
+                  @click="handleDelete(scope.row)"
+                  v-hasPermi="configPermi.delect"
+                >删除</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+  
+          <pagination
+            v-show="total>0"
+            :total="total"
+            :page.sync="queryParams.pageNum"
+            :limit.sync="queryParams.pageSize"
+            @pagination="getList"
+          />
+        </el-col>
+      </el-row>
+  
+      <!--  导入  -->
+      <!-- <uploadBox ref="upload" @refresh="handleQuery" /> -->
+      <!--  新增或修改  -->
+      <addAndEdit ref="addAndEdit" @refresh="getList" />
+    </div>
+  </template>
+  
+  <script>
+  import { 
+    listTableApi, 
+    delTableParamsApi, 
+    publicByPutApi as releaseApi
+    } from "@/api/CURD";
+  import addAndEdit from "../formBox/carouselAdvertisForm.vue"
+  export default {
+    name: "User",
+    dicts: ['tourism_online_status','tourism_online_type'],
+    components: {addAndEdit},
+    data() {
+      return {
+        title: "轮播广告",// 通用标题
+        configPermi: {
+          add: ['system:user:edit'], // 新增权限
+          details: ['system:user:details'], // 详情权限
+          delect: ['system:user:remove'], // 删除权限
+          edit: ['system:user:edit'], // 编辑权限
+          upload: ['system:user:upload'],// 导入权限
+          export: ['system:user:export'],// 导出权限
+          release: ['system:user:release']
+        },
+        configUrl: {
+          list: '/merchant/merchantDetail/pageList', // 列表地址
+          delect: '/merchant/merchantDetail/deleteById', // 删除地址
+          upload: '',// 导入地址
+          download:'', // 下载模板地址
+          export: '',// 导出地址
+          release: '/merchant/advList/updateStatus',// 发布接口
+        },
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 用户表格数据
+        tableList: null,
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 10,
+        },
+        dateRange: [],
+        // 控制列表是否显示
+        columns: [
+          { key: 0, label: `标题`, visible: true },
+          { key: 2, label: `摘要`, visible: true },
+          { key: 3, label: `创建人`, visible: true },
+          { key: 4, label: `创建时间`, visible: true },
+          { key: 5, label: `状态`, visible: true },
+        ],
+      };
+    },
+    methods: {
+        initData() {
+            this.getList();
+        },
+      /** 查询用户列表 */
+      getList() {
+        this.loading = true;
+        let params = JSON.parse(JSON.stringify({
+            ...this.queryParams,
+            startTime: this.queryParams.time&&this.queryParams.time[0]?this.queryParams.time[0]:null,
+            endTime: this.queryParams.time&&this.queryParams.time[1]?this.queryParams.time[1]:null,
+        }))
+      delete params.time;
+        listTableApi(
+          this.configUrl.list,
+          this.addDateRange(
+            {...params,type: 1}, 
+            this.dateRange)).then(response => {
+              this.tableList = response.data.rows;
+              this.total = response.data.total;
+              this.loading = false;
+          }
+        ).catch (error=>{
+          console.error('获取列表失败!!!!',error)
+          this.tableList = [];
+          this.total = 0;
+          this.loading = false
+        }) 
+      },
+      /** 搜索按钮操作 */
+      handleQuery() {
+        this.queryParams.pageNum = 1;
+        this.getList();
+      },
+      /** 重置按钮操作 */
+      resetQuery() {
+        this.dateRange = [];
+        this.queryParams = {
+          pageNum: 1,
+          pageSize: 10,
+        }
+        this.handleQuery();
+      },
+      // 多选框选中数据
+      handleSelectionChange(selection) {
+        this.ids = selection.map(item => item.id);
+        this.single = selection.length != 1;
+        this.multiple = !selection.length;
+      },
+      /** 新增按钮操作 */
+      handleAdd() {
+        if(this.$refs.addAndEdit) {
+          this.$refs.addAndEdit.initData(this.title + '新增', "ADD",{})
+        }
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        if(this.$refs.addAndEdit) {
+          this.$refs.addAndEdit.initData(this.title + '编辑', "EDITInit",{...row})
+        }
+      },
+      handleDetails(row){
+        if(this.$refs.detailsBox) {
+          this.$refs.detailsBox.initData(this.title + '详情',"DEATILSInit", row)
+        }
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const ids = row.id || this.ids;
+        this.$modal.confirm('是否确认删除编号为"' + ids + '"的数据项?').then( () => {
+          return delTableParamsApi(this.configUrl.delect,{
+            id: ids,
+            type: 1
+          });
+        }).then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+        }).catch((e) => {
+          console.error("删除失败====",e)
+        });
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        this.download(this.configUrl.export, {
+          ...this.queryParams
+        }, `${this.title }_${new Date().getTime()}.xlsx`)
+      },
+      /** 导入按钮操作 */
+      handleImport() {
+        if(this.$refs.upload) {
+          this.$refs.upload.initData({
+            width: '400px',
+            // 弹出层标题(用户导入)
+            title: this.title + "导入",
+            // 下载模板地址
+            importTemplate: this.configUrl.download,
+            // 上传的地址
+            url: this.configUrl.upload
+          })
+        }
+      },
+      /** 发布  */
+      handleRelease(row) {
+        const ids = row.id;
+        this.$modal.confirm(`是否确认${row.onlineStatus == 0 ? '上线' : '下线'}编号为"${ids}"的数据项?`).then( () => {
+          return releaseApi(this.configUrl.release,{
+            id: ids,
+            onlineStatus: row.onlineStatus == 0 ? 1 : 0
+          });
+        }).then(() => {
+          this.getList();
+          this.$modal.msgSuccess(`${row.onlineStatus == 0 ? '上线' : '下线'}成功`);
+        }).catch((e) => {
+          console.error("发布失败====",e)
+        });
+      }
+    }
+  };
+  </script>
+