| 
					
				 | 
			
			
				@@ -0,0 +1,432 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <el-dialog 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :title="title" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :visible.sync="open" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    width="70%" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    append-to-body 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :close-on-click-modal="false" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @close="cancel" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <div class="form-dialog-box" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    v-loading="loading" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :element-loading-text="loadingText" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    element-loading-spinner="el-icon-loading" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    element-loading-background="rgba(0, 0, 0, 0)"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <div 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        v-loading="loading" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :element-loading-text="''" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        element-loading-spinner="''" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        element-loading-background="rgba(0, 0, 0, 0.8)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form :model="form" ref="form" :rules="rules" label-width="130px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="form-title"><span>基本信息</span></div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-form-item label="商铺名称:" prop="name"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-input style="width: 350px;" v-model="form.name" placeholder="请输入商铺名称" maxlength="50" show-word-limit /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-form-item label="商铺Logo:" prop="shopLogo"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <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="handleAvatarSuccess" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :on-progress="handleAvatarProgress" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :before-upload="beforeAvatarUpload" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :disabled="actionUrlLoading" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :on-error="handleAvatarError" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <img v-if="form.shopLogo" style="width: 100px;height: 100px;" :src="form.shopLogo" class="avatar"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <i v-else class="el-icon-plus avatar-uploader-icon"></i> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-upload> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <span>建议上传图片尺寸343px X 94px,支持jpg/png/gif,支持5MB大小以内的图片上传</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-form-item label="营业时间:" prop="openTimeStart"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div style="display: flex;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-form-item label-width="0" label=""> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-input style="width: 150px;" v-model="form.openTimeStart" placeholder="请输入开始时间" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <span>--</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-form-item label-width="0" label="" prop="openTimeEnd"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <el-input style="width: 150px;" v-model="form.openTimeEnd" placeholder="请输入结束时间" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-form-item label="联系人:"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-input style="width: 350px;" v-model="form.contactsName" placeholder="请输入联系人" maxlength="10" show-word-limit /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-form-item label="联系电话:"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-input style="width: 350px;" v-model="form.contactsMobile" placeholder="请输入联系电话" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-form-item label-width="80px" label="商家介绍"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <editor ref="editor" v-model="form.shopDetail" :fileSize="20" :min-height="200" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <span slot="footer" class="dialog-footer" v-if="formStatus==1"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-button @click="cancel">取消</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <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> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <!-- 添加或修改对话框 End --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </el-dialog> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getTableDeatilsByIdApi, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  updateTableApi, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  addTableApi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ } from '@/api/CURD' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import Editor from "@/components/Editor"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name: "addAndEdit", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  dicts: ['tourism_online_status','tourism_online_type'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  components: {Editor}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      title: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      activeName: 'first', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      model: "", // EDIT: 编辑模式 ADD : 新增模式  EDITInit : 编辑模式(需要请求详情) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      open: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      loading: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      loadingText: "拼命加载数据中...", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      formStatus: null, // 0/null : 加载中 1 : 获取详情成功 2  : 获取详情失败  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      configUrl: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        add: '/merchant/merchantShop/insertOrUpdate', // 新增地址 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        details: '/merchant/merchantShop/selectById', // 详情地址 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        edit: '/merchant/merchantShop/insertOrUpdate', // 编辑地址 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      form: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        id: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      rules: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        name: [{ required: true, message: "请输入商铺名称", trigger: ["change","blur"] }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        shopLogo: [{ required: true, message: "请上传商铺Logo", trigger: ["change","blur"] }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        shopDetail: [{ required: true, message: "请输产品介绍", trigger: ["change","blur"] }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        openTimeStart: [{ required: true, message: "请输入开始时间", trigger: ["change","blur"] }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        openTimeEnd: [{ required: true, message: "请输入结束时间", trigger: ["change","blur"] }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      scenicAreaProducts: [],// 景点产品关联 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //  上传文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      actionUrl: process.env.VUE_APP_BASE_API + process.env.VUE_APP_UPLOAD_IMAGE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      actionUrlLoading: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async initData(title , model,row){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.title = title 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.open = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.loadingText = "拼命加载数据中..." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.loading = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.actionUrlLoading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.model = model 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.formStatus = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if(model=='ADD') { // 新增 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$set(this,'form',row) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.formStatus = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }else if(model=='EDIT') { // 新增 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let obj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ...row 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$set(this,'form',obj) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.formStatus = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }else if(model=='EDITInit') { // 新增 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        await this.getTableDeatilsFun(row) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.loading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$nextTick(()=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(this.$refs["form"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.$refs["form"].clearValidate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 获取详情 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async getTableDeatilsFun(row) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const id = row.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.loading = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let res = await getTableDeatilsByIdApi(this.configUrl.details,{id}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        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.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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (this.model != 'ADD') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            addTableApi( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.configUrl.edit,{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ...this.form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              }).then(response => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.$modal.msgSuccess("修改成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.loading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.open = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.$emit('refresh') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }).catch(()=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.$message.error("修改失败!!!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.loading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            addTableApi(this.configUrl.edit,{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ...this.form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              }).then(response => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.$modal.msgSuccess("新增成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.loading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.open = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.$emit('refresh') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }).catch(()=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.$message.error("新增失败!!!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              this.loading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 重置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @date 2023-11-22 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @returns {any} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    reset() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if(this.$refs["form"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$refs["form"].clearValidate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 关闭弹框 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @date 2023-11-22 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @returns {any} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    cancel() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.reset(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.open = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /**  上传图片  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handleAvatarSuccess(res, file) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log("res, file",res, file) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.actionUrlLoading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if(res.code != 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$set(this.form,'shopLogo',null)  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$set(this.form,'shopLogo',res.data.url)  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    beforeAvatarUpload(file) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const isLt2M = file.size / 1024 / 1024 <= 5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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('上传图片图片大小不能超过 5MB!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return isJPG && isLt2M; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handleAvatarProgress(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.actionUrlLoading = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handleAvatarError() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.actionUrlLoading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  watch: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    'form.shopDetail'() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if(this.form.shopDetail == '<p><br></p>') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.form.shopDetail = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if(this.$refs["form"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.$refs["form"].validateField('shopDetail'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style lang="scss" scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.form-dialog-box { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  padding: 0 30px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  padding: 0 30px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  min-height: 50vh; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  max-height: 65vh; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  overflow-y: auto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  >div { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    min-height: 50vh; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .form-title { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    padding: 0 0 10px 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    span { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      color: rgba(65,80,88,1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      font-size: 16px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      font-family: SourceHanSansSC; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      font-weight: 700; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      line-height: 23px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      border-left: 4px solid rgb(22, 132, 252); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      padding-left: 10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ::v-deep .ql-editor { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    height: 400px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .upload-btn { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    width: 100px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    height: 100px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    background-color: #fbfdff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    border: dashed 1px #c0ccda; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    border-radius: 5px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    i { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      font-size: 30px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      margin-top: 20px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    &-text { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      margin-top: -10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .avatar { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    cursor: pointer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.el-table{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .upload-btn { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    width: 100px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    height: 100px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    background-color: #fbfdff; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    border: dashed 1px #c0ccda; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    border-radius: 5px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    i { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      font-size: 30px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      margin-top: 20px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    &-text { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      margin-top: -10px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .avatar { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    cursor: pointer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.area-container { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  min-height: 400px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+::v-deep .area-wrap-city.el-cascader { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  line-height: normal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .el-input { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    cursor: pointer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    width: 100% !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    height: 28px !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .el-input__inner { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      display: none !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    span.el-input__suffix { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      position: inherit !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      i.el-input__icon { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        line-height: inherit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        margin-left: 5px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .el-input__wrapper { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      box-shadow: none; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      input { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        display: none; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .el-cascader__tags { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    display: none; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.area-city-popper { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .el-cascader-panel { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .el-scrollbar.el-cascader-menu { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      .el-cascader-menu__wrap.el-scrollbar__wrap { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        height: 315px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+::v-deep .avatar-uploader .el-upload { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    border: 1px dashed #d9d9d9; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    border-radius: 6px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    cursor: pointer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    overflow: hidden; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ::v-deep .avatar-uploader .el-upload:hover { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    border-color: #409EFF; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ::v-deep .avatar-uploader-icon { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    font-size: 28px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    color: #8c939d; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    width: 100px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    height: 100px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    line-height: 100px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    text-align: center; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ::v-deep .avatar { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    width: 100px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    height: 100px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    display: block; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.custom-class-box { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  z-index: 999999 !important; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |