MONSTER-ygh 1 anno fa
parent
commit
4748cdad60

+ 11 - 11
src/views/tourism/popularCheck/contentManagement.vue

@@ -6,7 +6,7 @@
           <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
             <el-form-item label="用户昵称">
                 <el-input
-                v-model="queryParams.refundTransactionId"
+                v-model="queryParams.nickName"
                 placeholder="请输入用户昵称"
                 clearable
                 style="width: 240px;"
@@ -15,7 +15,7 @@
             </el-form-item>
             <el-form-item label="标题">
                 <el-input
-                v-model="queryParams.orderId"
+                v-model="queryParams.title"
                 placeholder="请输入标题"
                 clearable
                 style="width: 240px;"
@@ -49,9 +49,9 @@
   
           <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="orderNum" prop="orderNum" v-if="columns[0].visible" :show-overflow-tooltip="true" />
-            <el-table-column label="标题" align="center" key="refundTransactionId" prop="refundTransactionId" v-if="columns[1].visible" :show-overflow-tooltip="true" />
-            <el-table-column label="详情" align="center" key="transactionId" prop="transactionId" v-if="columns[2].visible" :show-overflow-tooltip="true">
+            <el-table-column label="用户昵称" align="center" key="memberName" prop="memberName" v-if="columns[0].visible" :show-overflow-tooltip="true" />
+            <el-table-column label="标题" align="center" key="title" prop="title" v-if="columns[1].visible" :show-overflow-tooltip="true" />
+            <el-table-column label="详情" align="center" key="content" prop="content" v-if="columns[2].visible" :show-overflow-tooltip="true">
               <template slot-scope="scope">
                 <span 
                 style="cursor: pointer;color: #409eff"
@@ -59,14 +59,14 @@
                 >查看</span>
               </template>
             </el-table-column>
-            <el-table-column label="提交时间" align="center" key="refundMobile" prop="refundMobile" v-if="columns[3].visible" :show-overflow-tooltip="true" />
-            <el-table-column label="状态" align="center" key="source" prop="source" v-if="columns[4].visible" :show-overflow-tooltip="true">
+            <el-table-column label="提交时间" align="center" key="createTime" prop="createTime" v-if="columns[3].visible" :show-overflow-tooltip="true" />
+            <el-table-column label="状态" align="center" key="status" prop="status" v-if="columns[4].visible" :show-overflow-tooltip="true">
                 <template slot-scope="scope">
-                    <dict-tag :options="dict.type.tourism_ticketOrders_source" :value="scope.row.source"/>
+                    <dict-tag :options="dict.type.tourism_ticketOrders_source" :value="scope.row.status"/>
                 </template>
             </el-table-column>
             <el-table-column label="审核时间" align="center" key="refundTime" prop="refundTime" v-if="columns[5].visible" :show-overflow-tooltip="true" />
-            <el-table-column label="点赞量(人/次)" align="center" key="refundAmount" prop="refundAmount" v-if="columns[6].visible" :show-overflow-tooltip="true" />
+            <el-table-column label="点赞量(人/次)" align="center" key="praiseNum" prop="praiseNum" v-if="columns[6].visible" :show-overflow-tooltip="true" />
             <el-table-column
               label="操作"
               align="center"
@@ -130,7 +130,7 @@
           export: ['system:user:export'],// 导出权限
         },
         configUrl: {
-          list: '/order/orderRefund/pageList', // 列表地址
+          list: '/member/memberCheckin/pageList', // 列表地址
           delect: '', // 删除地址
           upload: '',// 导入地址
           download:'', // 下载模板地址
@@ -235,7 +235,7 @@
       /**    */
       handleDetails(row){
         if(this.$refs.detailsBox) {
-          this.$refs.detailsBox.initData(this.title + '详情',"DEATILS", row)
+          this.$refs.detailsBox.initData(this.title + '详情',"DEATILSInit", row)
         }
       },
       /**    */

+ 65 - 66
src/views/tourism/popularCheck/detailsBox/ticketRefundOrderDetails.vue

@@ -19,78 +19,76 @@
         element-loading-background="rgba(0, 0, 0, 0.8)"
         >
         <el-form :model="form" ref="form" :rules="rules" label-width="120px">
-          <div class="form-title"><span>订单信息</span></div>
+          <div class="form-title"><span>用户信息</span></div>
           <div style="display: flex;">
-            <el-form-item label="订单号:">
-              <span style="display: block; min-width: 250px;">{{ form.orderNum }}</span>
+            <el-form-item label="用户名称:">
+              <span style="display: block; min-width: 250px;">{{ form.memberName }}</span>
             </el-form-item>
-            <el-form-item label="支付单号:">
-              <span style="display: block; min-width: 250px;">{{ form.transactionId }}</span>
+            <el-form-item label="昵称:">
+              <span style="display: block; min-width: 250px;">{{ form.nickName }}</span>
             </el-form-item>
-            <el-form-item label="原订单号:">
-              <span style="display: block;min-width: 250px;">{{ form.orderId }}</span>
-            </el-form-item>
-          </div>
-          <div style="display: flex;">
-            <el-form-item label="原订单金额:">
-              <span style="display: block;min-width: 250px;">{{ form.orderAmount }}</span>
-            </el-form-item>
-            <el-form-item label="规格:">
-              <span style="display: block;min-width: 250px;">{{ form.goodsName }}</span>
+            <el-form-item label="头像" prop="avatar">
+              <div style="display: flex;">
+                <div 
+                v-for="(item,index) in form.avatar" 
+                :key="index"
+                style="width: 100px; height: 100px;position: relative;border: 1px solid #999;border-radius: 5px;margin-right: 20px;">
+                  <el-image 
+                    style="width: 100%; height: 100%"
+                    :src="item" 
+                    :preview-src-list="form.avatar">
+                  </el-image>
+                </div>
+              </div>
             </el-form-item>
-            <el-form-item label="订单来源:">
-              <span style="display: block;min-width: 250px;">
-                <dict-tag :options="dict.type.tourism_ticketOrders_source" :value="form.source"/>
-              </span>
-            </el-form-item>  
           </div>
+
+          <div class="form-title"><span>打卡信息</span></div>
           <div style="display: flex;">
-            <el-form-item label="门票名称:">
-              <span style="display: block; min-width: 250px;">{{ form.performName }}</span>
+            <el-form-item label="点位名称:">
+              <span style="display: block;min-width: 250px;">{{ form.markName }}</span>
             </el-form-item>
-            <el-form-item label="下单时间:">
-              <span style="display: block;min-width: 250px;">{{ form.createTime }}</span>
+            <el-form-item label="点赞数量:">
+              <span style="display: block;min-width: 250px;">{{ form.praiseNum }}</span>
             </el-form-item>
-          </div>
-          <div class="form-title"><span>购票人信息</span></div>
-          <div style="display: flex;">
-            <el-form-item label="购票人名称:">
-              <span style="display: block;min-width: 250px;">{{ form.refundName }}</span>
-            </el-form-item>
-            <el-form-item label="购票人手机号:">
-              <span style="display: block;min-width: 250px;">{{ form.refundMobile }}</span>
+            <el-form-item label="打卡距离:">
+              <span style="display: block;min-width: 250px;">{{ form.checkinDistance }}</span>
             </el-form-item>
           </div>
-          <div class="form-title"><span>退款信息</span></div>
-          <div style="display: flex;">
-            <el-form-item label="退款单号:">
-              <span style="display: block;min-width: 250px;">{{ form.refundTransactionId }}</span>
+          <div>
+            <el-form-item label="标题:">
+              <span style="display: block;min-width: 250px;">{{ form.title }}</span>
             </el-form-item>
-            <el-form-item label="退款金额:">
-              <span style="display: block;min-width: 250px;">{{ form.refundAmount }}</span>
-            </el-form-item>
-            <el-form-item label="退款原因:">
-              <span style="display: block;min-width: 250px;">{{ form.refundReason }}</span>
-            </el-form-item>
-          </div>
-          <div style="display: flex;">
-            <el-form-item label="退款申请时间:">
-              <span style="display: block;min-width: 250px;">{{ form.refundTime }}</span>
+            <el-form-item label="图片:" prop="imgUrl">
+              <div style="display: flex;">
+                <div 
+                v-for="(item,index) in form.imgUrl" 
+                :key="index"
+                style="width: 100px; height: 100px;position: relative;border: 1px solid #999;border-radius: 5px;margin-right: 20px;">
+                  <el-image 
+                    style="width: 100%; height: 100%"
+                    :src="item" 
+                    :preview-src-list="form.imgUrl">
+                  </el-image>
+                </div>
+              </div>
             </el-form-item>
-            <el-form-item label="退款状态:">
-              <span style="display: block;min-width: 250px;">
-                <dict-tag :options="dict.type.tourism_orderRefund_status" :value="form.status"/>
-              </span>
+            <el-form-item label="视频:" prop="vedioUrl">
+              <div style="display: flex;">
+                <div 
+                v-for="(item,index) in form.vedioUrl" 
+                :key="index"
+                style="width: 200px; height: 200px;position: relative;border: 1px solid #999;border-radius: 5px;margin-right: 20px;">
+                  <video 
+                  controls 
+                  autoplay width="200px" height="200px" :src="item" :key="index"></video>
+                </div>
+              </div>
             </el-form-item>
-            <el-form-item label="退款成功时间:">
-              <span style="display: block;min-width: 250px;">{{ form.refundSuccessTime }}</span>
+            <el-form-item label="内容:">
+              <span style="display: block;min-width: 250px;">{{ form.content }}</span>
             </el-form-item>
           </div>
-          <!-- <div style="display: flex;">
-            <el-form-item label="备注:">
-              <span style="display: block;min-width: 250px;">{{ form.remark }}</span>
-            </el-form-item>
-          </div> -->
           <div v-if="model=='DEATILSADD'">
             <div class="form-title"><span>审核操作</span></div>
               <div>
@@ -100,7 +98,7 @@
                     type="textarea"
                     :rows="2"
                     placeholder="请输入审核备注"
-                    v-model="form.remark">
+                    v-model="form.errReason">
                   </el-input>
                 </div>
               </div>
@@ -131,7 +129,7 @@ import {
 
 export default {
   name: "addAndEdit",
-  dicts: ['tourism_orderRefund_status','tourism_ticketOrders_source'],
+  dicts: [],
   data() {
     return {
       title: "",
@@ -142,9 +140,9 @@ export default {
       formStatus: null, // 0/null : 加载中 1 : 获取详情成功 2  : 获取详情失败 
       configUrl: {
         add: '', // 新增地址
-        details: '/member/memberInfo/detail', // 详情地址
+        details: '/member/memberCheckin/selectById', // 详情地址
         edit: '', // 编辑地址
-        refundAudit: '/order/orderInfo/refundAudit',// 审核接口
+        refundAudit: '/member/memberCheckin/audit',// 审核接口
       },
       form: {
         id: undefined,
@@ -163,7 +161,7 @@ export default {
       this.model = model
       this.formStatus = 0
       if(model=='DEATILSADD') { // 新增
-        this.$set(this,'form',{...row})
+        await this.getTableDeatilsFun(row)
         this.formStatus = 1
       }else if(model=='DEATILS') { // 新增
         let obj = {
@@ -190,7 +188,9 @@ export default {
         if(res.code == 200) {
           let obj = {
             ...res.data,
-            imgUrl: res.data.imgUrl?res.data.imgUrl.split(','):[],
+            avatar: res.data.avatar?res.data.avatar.split(','):[],
+            vedioUrl: res.data.vedioUrl?res.data.vedioUrl.split(','):[],
+            imgUrl: res.data.imgUrl?res.data.imgUrl.split(','):[]
         }
           this.$set(this,'form',JSON.parse(JSON.stringify(obj)))
           this.formStatus = 1
@@ -232,9 +232,8 @@ export default {
       addTableApi(
         this.configUrl.refundAudit,{
           refundId: this.form.id,// 退款ID-列表ID
-          status: type,
-          remark: this.form.remark,
-          errReason: ''
+          auditStatus: type,
+          errReason: this.form.errReason,
         }).then(response => {
           this.$modal.msgSuccess(`提交成功`);
           this.loading = false

+ 4 - 0
src/views/tourism/scenicAreaManagement/contentManagement/formBox/eventNotificationsForm.vue

@@ -44,6 +44,9 @@
                 >{{ dict.label }}</el-radio>
             </el-radio-group>
           </el-form-item>
+          <el-form-item label="简介" prop="noticeSnapshot">
+              <el-input type="textarea" v-model="form.noticeSnapshot" placeholder="请输入简介" maxlength="150" show-word-limit />
+            </el-form-item>
           <el-form-item label="内容" prop="noticeContent">
             <editor ref="editor" v-model="form.noticeContent" :fileSize="20" :min-height="200" />
           </el-form-item>
@@ -100,6 +103,7 @@ export default {
         noticeType: [{ required: true, message: "请选择公告类型", trigger: ["change","blur"] }],
         status: [{ required: true, message: "请选择状态", trigger: ["change","blur"] }],
         noticeContent: [{ required: false, message: "请输入内容", trigger: ["change","blur"] }],
+        noticeSnapshot: [{ required: true, message: "请输入简介", trigger: ["change","blur"] }],
       },
       scenicAreaProducts: [],// 景点产品关联
     };

+ 78 - 0
src/views/tourism/scenicAreaManagement/navigationManagement/formBox/pointTypeForm.vue

@@ -44,6 +44,34 @@
           </div>
           <span>建议尺寸40*40,支持jpg,png,gif,支持1MB大小以内的图片上传</span>
         </el-form-item>
+        <el-form-item label="点位图标" prop="iconPath">
+          <div
+          style="width: 120px;"
+          v-loading="actionUrlLoading"
+          element-loading-text="上传中..."
+          element-loading-spinner="el-icon-loading"
+          element-loading-background="rgba(0, 0, 0, 0.8)"
+          >
+            <el-upload
+              class="avatar-uploader"
+              :action="actionUrl"
+              :data="{
+                bucket: 'tourism'
+              }"
+              :show-file-list="false"
+              accept=".jpg, .png, jpeg"
+              :on-success="handleAvatarSuccess1"
+              :on-progress="handleAvatarProgress1"
+              :before-upload="beforeAvatarUpload1"
+              :disabled="actionUrlLoading1"
+              :on-error="handleAvatarError1"
+              >
+              <img v-if="form.iconPath" style="width: 100px;height: 100px;background-color: rgba(211,211,211,0.6);" :src="form.iconPath" class="avatar">
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
+          </div>
+          <span>建议尺寸40*40,支持jpg,png,gif,支持1MB大小以内的图片上传</span>
+        </el-form-item>
       </el-form>
     </div>
     <span slot="footer" class="dialog-footer" v-if="formStatus==1">
@@ -121,6 +149,7 @@ export default {
       //  上传文件
       actionUrl: process.env.VUE_APP_BASE_API + process.env.VUE_APP_UPLOAD_IMAGE,
       actionUrlLoading: false,
+      actionUrlLoading1: false,
     };
   },
   methods: {
@@ -282,6 +311,55 @@ export default {
     },
     handleAvatarError() {
       this.actionUrlLoading = false
+    },
+
+    /**  上传图片  */
+    handleAvatarSuccess1(res, file) {
+      console.log("res, file",res, file)
+      this.actionUrlLoading = false
+      if(res.code != 200) {
+        this.$set(this.form,'iconPath',null) 
+      }else {
+        this.$set(this.form,'iconPath',res.data.url) 
+      }
+      
+    },
+    beforeAvatarUpload1(file) {
+      const isLt2M = file.size / 1024 / 1024 <= 1;
+      let testmsg = file.name.substring(file.name.lastIndexOf('.')+1)
+      let typeList = ['png','jepg','jpg','gif']
+      const isJPG = typeList.includes(testmsg);
+      if (!isJPG) {
+        this.$message.error(`上传头像图片只能是 ${typeList} 格式!`);
+      }
+      if (!isLt2M) {
+        this.$message.error('上传头像图片大小不能超过 2MB!');
+      }
+
+      let isSize = new Promise(function (resolve, reject) {
+          let _URL = window.URL || window.webkitURL;
+          let img = new Image();
+          img.onload = function () {
+            let valid = img.width == 40 && img.height == 40;
+            valid ? resolve() : reject();
+          };
+          img.src = _URL.createObjectURL(file);
+        }).then(
+          () => {
+            return file;
+          },
+          () => {
+            this.$message.error("上传图片尺寸只能是 40*40 px !");
+            return Promise.reject();
+          }
+        );
+      return isJPG && isLt2M && isSize;
+    },
+    handleAvatarProgress1(){
+      this.actionUrlLoading1 = true
+    },
+    handleAvatarError1() {
+      this.actionUrlLoading1 = false
     }
   },
 };

+ 17 - 4
src/views/tourism/scenicAreaManagement/navigationManagement/pointType.vue

@@ -51,7 +51,7 @@
         <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="name" prop="name" v-if="columns[0].visible" :show-overflow-tooltip="true" />
-          <el-table-column label="图标" align="center" key="iconImg" v-if="columns[1].visible">
+          <el-table-column label="类型图标" align="center" key="iconImg" v-if="columns[1].visible">
             <template slot-scope="scope">
               <el-image 
 
@@ -63,8 +63,20 @@
               <span v-else>暂无图片</span>
             </template>
           </el-table-column>
-          <el-table-column label="点位数" align="center" key="counts" prop="counts" v-if="columns[2].visible" :show-overflow-tooltip="true" />  
-          <el-table-column label="创建时间" align="center" key="createTime" prop="createTime" v-if="columns[3].visible" :show-overflow-tooltip="true" />
+          <el-table-column label="点位图标" align="center" key="iconPath" v-if="columns[2].visible">
+            <template slot-scope="scope">
+              <el-image 
+
+              v-if="scope.row.iconPath"
+                style="width: 40px; height: 40px;background-color: rgba(211,211,211,0.6);"
+                :src="scope.row.iconPath" 
+                :preview-src-list="[scope.row.iconPath]">
+              </el-image>
+              <span v-else>暂无图片</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="点位数" align="center" key="counts" prop="counts" v-if="columns[3].visible" :show-overflow-tooltip="true" />  
+          <el-table-column label="创建时间" align="center" key="createTime" prop="createTime" v-if="columns[4].visible" :show-overflow-tooltip="true" />
           <el-table-column
             label="操作"
             align="center"
@@ -157,7 +169,8 @@ export default {
       columns: [
         { key: 0, label: `类型名称`, visible: true },
         // { key: 1, label: `归属景区`, visible: true },
-        { key: 2, label: `图标`, visible: true },
+        { key: 2, label: `类型图标`, visible: true },
+        { key: 2.5, label: `点位图标`, visible: true },
         { key: 3, label: `类型`, visible: true },
         { key: 4, label: `点位数`, visible: true },
         { key: 5, label: `创建时间`, visible: true },