<!--新增门店-->
<template>
  <div>
    <xy-dialog ref="dialog" :is-show.sync="isShow" :title="type === 'add' ? '新增门店' : '编辑门店'" type="form" :form="form" :rules="rules" @submit="submit">
      <template v-slot:belongsMerchant>
        <div class="xy-table-item">
          <div class="xy-table-item-label">
            <span style="color: red;font-weight: 600;padding-right: 4px;">*</span>所属商家：
          </div>
          <div class="xy-table-item-content">
            <el-select clearable placeholder="请选择所属商家" v-model="form.belongsMerchant" style="width: 300px;">
              <el-option v-for="item in merchants" :key="item.value" :value="item.value" :label="item.label"></el-option>
            </el-select>
          </div>
        </div>
      </template>
      <template v-slot:name>
        <div class="xy-table-item">
          <div class="xy-table-item-label">
            <span style="color: red;font-weight: 600;padding-right: 4px;">*</span>名称：
          </div>
          <div class="xy-table-item-content">
            <el-input clearable placeholder="请填写活动名称" v-model="form.name" style="width: 300px;"/>
          </div>
        </div>
      </template>
      <template v-slot:password>
        <div class="xy-table-item">
          <div class="xy-table-item-label">
            <span style="color: red;font-weight: 600;padding-right: 4px;">*</span>密码：
          </div>
          <div class="xy-table-item-content">
            <el-input v-model="showPassword" show-password type="password" clearable placeholder="请填写密码"  style="width: 300px;" @input="e => form.password = e"/>
          </div>
        </div>
      </template>
      <template v-slot:address>
        <div class="xy-table-item" style="margin-bottom: 20px;">
          <div class="xy-table-item-label">
            地址选择
          </div>
          <div class="xy-table-item-content">
            <avue-input-map style="width: 300px;"  :params="option" placeholder="请选择地图" v-model="map" ></avue-input-map>
          </div>
        </div>

        <div class="xy-table-item">
          <div class="xy-table-item-label">
            <span style="color: red;font-weight: 600;padding-right: 4px;">*</span>地址：
          </div>
          <div class="xy-table-item-content">
            <el-input clearable placeholder="请填写地址" v-model="form.address" style="width: 300px;"/>
          </div>
        </div>
      </template>
      <template v-slot:contact>
        <div class="xy-table-item">
          <div class="xy-table-item-label">
            <span style="color: red;font-weight: 600;padding-right: 4px;">*</span>联系人：
          </div>
          <div class="xy-table-item-content">
            <el-input clearable placeholder="请填写联系人" v-model="form.contact" style="width: 300px;"/>
          </div>
        </div>
      </template>
      <template v-slot:contactNumber>
        <div class="xy-table-item">
          <div class="xy-table-item-label">
            <span style="color: red;font-weight: 600;padding-right: 4px;">*</span>联系电话：
          </div>
          <div class="xy-table-item-content">
            <el-input clearable placeholder="请填写联系电话" v-model="form.contactNumber" style="width: 300px;"/>
          </div>
        </div>
      </template>
      <template v-slot:lng>
        <div class="xy-table-item">
          <div class="xy-table-item-label">
            <span style="color: red;font-weight: 600;padding-right: 4px;">*</span>经度：
          </div>
          <div class="xy-table-item-content">
            <el-input disabled clearable placeholder="请填写经度" v-model="form.lng" style="width: 120px;"/>
          </div>
        </div>
      </template>
      <template v-slot:lat>
        <div class="xy-table-item">
          <div class="xy-table-item-label">
            <span style="color: red;font-weight: 600;padding-right: 4px;">*</span>纬度：
          </div>
          <div class="xy-table-item-content">
            <el-input disabled  clearable placeholder="请填写纬度" v-model="form.lat" style="width: 120px;"/>
          </div>
        </div>
      </template>
      <template v-slot:extraFormBottom>

      </template>
    </xy-dialog>
  </div>
</template>

<script>
import {show,save,store} from '@/api/shop'
import { Message } from 'element-ui'
export default {
  data() {
    return {
      merchants:[
        {
          value:1,
          label:'测试商户1'
        },
        {
          value:2,
          label:'测试商户2'
        },
      ],
      //测试

      type:'add',
      id:null,
      isShow:false,
      showPassword:'',//展示的密码
      form:{
        belongsMerchant:'',
        name:'',
        password:'',
        contact:'',
        contactNumber:'',
        address:'',
        lng:'',//经度
        lat:'',//纬度
      },
      rules:{
        belongsMerchant:[
          {required:true,message:'请选择所属商家'}
        ],
        name:[
          {required:true,message:'请填写名称'}
        ],
        password:[
          {required:true,message:'请填写密码'}
        ],
        contact:[
          {required:true,message:'请填写联系人'}
        ],
        contactNumber:[
          {required:true,message:'请填写联系电话'},
          {pattern: /^[1][3-9][\d]{9}/,message:'请输入正确手机号'}
        ],
        address:[
          {required:true,message:'请填写地址'}
        ],
        lng:[
          {required:true,message:'请选择定位'}
        ],
        lat:[
          {required:true,message:'请选择定位'}
        ]
      },
      map:{

      },

      option: {
        column: [
          {
            label: '坐标',
            prop: 'map',
            type: 'map',
            //高德初始化参数
            params:{
              zoom: 10,
              // zoomEnable: false,
              // dragEnable: false,
            }
          }]
      }
    }
  },
  methods: {
    submit(){
      if(this.type === 'add'){
        store({
          merchant_id:this.form.belongsMerchant,
          name:this.form.name,
          password:this.form.password,
          address:this.form.address,
          contact:this.form.contact,
          phone:this.form.contactNumber,
          longitude:this.form.lng,
          latitude:this.form.lat,
          state:1
        }).then(res => {
          Message({
            type:'success',
            message:'添加成功'
          })
          this.isShow = false
          this.showPassword = ''
          this.$emit('refresh')
        })
        return
      }
      if(this.type === 'editor'){
        save({
          id:this.id,
          merchant_id:this.form.belongsMerchant,
          name:this.form.name,
          password:this.form.password,
          address:this.form.address,
          contact:this.form.contact,
          phone:this.form.contactNumber,
          longitude:this.form.lng,
          latitude:this.form.lat,
          state:1
        }).then(res => {
          Message({
            type:'success',
            message:'编辑门店成功'
          })
          this.isShow = false
          this.showPassword = ''
          this.$emit('refresh')
        })
        return
      }
    }
  },
  watch:{
    map(newVal){
      if(!newVal) return
      this.form.lat = newVal[1]
      this.form.lng = newVal[0]
      this.form.address = newVal[2]
    },
    async isShow(newVal){
      if(newVal){
        if(this.type === 'editor'){
          const res = await show({id:this.id})
          this.form.address = res.address
          this.form.contact = res.contact
          this.form.name = res.name
          this.form.password = res.password
          this.form.contactNumber = res.phone
          this.form.belongsMerchant = res.merchant_id
          this.form.lat = res.latitude
          this.form.lng = res.longitude
        }
      }else{
        this.$refs['dialog'].reset()
      }
    }
  },
  mounted() {

  }

}
</script>

<style scoped lang="scss">
</style>
