liujq 3 vuotta sitten
vanhempi
commit
80cdf85774

+ 1 - 1
.env.development

@@ -3,5 +3,5 @@ ENV = 'development'
 
 # base api
 #VUE_APP_BASE_API = 'https://api.kaolanet.com'
-VUE_APP_BASE_API = 'https://api.honglouplus.com'
+VUE_APP_BASE_API = 'https://api.fangpiaovip.com'
 #VUE_APP_BASE_API = '/'

+ 1 - 1
.env.production

@@ -2,5 +2,5 @@
 ENV = 'production'
 
 # base api
-VUE_APP_BASE_API = 'https://api.honglouplus.com'
+VUE_APP_BASE_API = 'https://api.fangpiaovip.com'
 

+ 1 - 1
.env.staging

@@ -4,4 +4,4 @@ NODE_ENV = production
 ENV = 'staging'
 
 # base api
-VUE_APP_BASE_API = 'https://api.honglouplus.com'
+VUE_APP_BASE_API = 'https://api.fangpiaovip.com'

+ 109 - 272
src/views/house/components/popup/IndexEdit.vue

@@ -11,34 +11,29 @@
       custom-class="xl-drawer"
       direction="rtl"
     >
-      <base-form ref="ruleForm" class="lib-edit" :data="formData" :is-inline="false" label-width="110px" :insertSlotArr="[23,25]">
-        <div slot="OI23" class="scoped-product">
-          <div class="sp-item" v-for="(product, one) in productData" :key="one">
-            <div class="sp-title">{{product.product_type_name}}
-              <div class="scoped-sp-box" @click="openPtPopup(product, one)">
-                修改类型
-              </div>
-            </div>
-            <div class="sp-content">
-              <div class="sc-input">
-                <el-form-item label-width="80px" label="产品均价">
-                  <el-input v-model="product.average_price" placeholder="数字如:15000" onkeyup="value=value.replace(/[^\d]/g,'')"></el-input>
-                </el-form-item>
-                <el-form-item label-width="80px" label="梯户比">
-                  <el-input v-model="product.stairs_rate" placeholder="如:2梯4户"></el-input>
-                </el-form-item>
-                <!-- <el-form-item label-width="80px" label="装标">
-                  <el-input v-model="product.standard" placeholder="装修标准"></el-input>
-                </el-form-item> -->
-                <!-- <el-form-item label-width="80px" label="最低单价">
-                  <el-input v-model="product.price_min" placeholder="选填"></el-input>
-                </el-form-item>
-                <el-form-item label-width="80px" label="最高单价">
-                  <el-input v-model="product.price_max" placeholder="选填"></el-input>
-                </el-form-item> -->
-              </div>
-              <el-form-item label="户型">
-                <el-select v-model="product.house_type_list_val" placeholder="请选择" :multiple="true" @change="houseTypeChange(one)">
+      <base-form ref="ruleForm" class="lib-edit" :data="formData" :is-inline="false" label-width="110px" :insertSlotArr="[24,25]">
+        <div slot="OI24" class="scoped-house-type">
+          <div class="sht-main">
+            <div class="sht-op" v-for="(ht, three) in houseTypeArr" :key="three">
+              <el-upload
+                class="sht-img"
+                :action="`${domainUrl}/adm/upload/cloud`"
+                :data="{logic_type: 'estate', token}"
+                name="upload"
+                :show-file-list="false"
+                :on-success="houseTypeUploadSuccess"
+                :on-error="houseTypeUploadError"
+                :before-upload="houseTypeUploadBefore"
+              >
+                <img v-if="ht.img_url" :src="ht.img_url + '_adm0'" class="img" @click="houseTypeUploadImg(three)">
+                <i v-else class="el-icon-plus icon" @click="houseTypeUploadImg(three)"/>
+                <img v-if="ht.img_url" :src="ht.img_url + '_adm0'" class="sht-img-big">
+              </el-upload>
+              <div class="sht-deal">
+                <el-input class="sht-input" placeholder="输面积" v-model="ht.area">
+                  <template slot="append">㎡</template>
+                </el-input>
+                <el-select class="sht-select" v-model="ht.house_type_val" placeholder="请选择">
                   <el-option
                     v-for="item in $dictData.house_type"
                     :key="item.val"
@@ -46,37 +41,10 @@
                     :value="item.val">
                   </el-option>
                 </el-select>
-              </el-form-item>
-              <div class="room-box">
-                <div class="room-item" v-for="(room, two) in product.house_type_list" :key="two">
-                  <div class="ri-title">{{room.house_type_name}}
-                    <el-button type="small" icon="el-icon-plus" class="xl-form-btn xs t3" @click="roomAreaAdd(one, two)">添加</el-button>
-                  </div>
-                  <div class="ri-content">
-                    <div class="ri-op" v-for="(area, three) in room.area_list" :key="three">
-                      <el-upload
-                        class="ri-img"
-                        :action="`${domainUrl}/adm/upload/cloud`"
-                        :data="{logic_type: 'estate', token}"
-                        name="upload"
-                        :show-file-list="false"
-                        :on-success="roomAreaUploadSuccess"
-                        :on-error="roomAreaUploadError"
-                        :before-upload="roomAreaUploadBefore"
-                      >
-                        <img v-if="area.img_url" :src="area.img_url + '_adm0'" class="img" @click="roomAreaUploadImg(one, two, three)">
-                        <i v-else class="el-icon-plus icon" @click="roomAreaUploadImg(one, two, three)"/>
-                        <img :src="area.img_url + '_adm0'" class="ri-img-big">
-                      </el-upload>
-                      <div class="ri-deal">
-                        <input class="ri-input" v-model="area.area" type="text" placeholder="输面积">
-                        <span class="ri-del"  @click="roomAreaDel(one, two, three)">删除</span>
-                      </div>
-                    </div>
-                  </div>
-                </div>
+                <span class="sht-del"  @click="houseTypeDel(three)">删除</span>
               </div>
             </div>
+            <div class="sht-add" @click="houseTypeAdd()">添加户型</div>
           </div>
         </div>
         <div slot="OI25" class="scoped-other-form">
@@ -95,21 +63,14 @@
       </div>
     </el-drawer>
     <handle-map :is-show="isShowMap" @close="closeMap" />
-    <pt-edit
-      :isShow="isPtShow"
-      :curObj="ptObj"
-      @close="closePtPopup"
-     />
   </div>
 </template>
 <script>
 import { arrToObj } from '@/utils'
 import handleMap from '@/components/Common/Map'
-import PtEdit from './ProductTypeEdit'
 export default {
   components: {
     handleMap,
-    PtEdit,
   },
   mixins,
   props: {
@@ -127,10 +88,9 @@ export default {
       formData: [],
       cObj: {},
       isShowMap: false,
-      productData: [],
-      tempImgIndex: [0, 0, 0],
+      tempImgIndex: 0,
       ptObj: {},
-      isPtShow: false,
+      houseTypeArr: [],
     }
   },
   watch: {
@@ -148,17 +108,11 @@ export default {
             if (curData.metro_line) curData.metro_line = curData.metro_line.split(',')
             if (curData.metro_type) curData.metro_type = curData.metro_type.split(',')
             this.cObj = curData || {}
-            let productData = curData.area_data || []
-            productData.map((one, oneIndex) =>{
+            let houseTypeArr = curData.area_data || []
+            houseTypeArr.map((one) =>{
               one.product_type_name = arrToObj(this.$dictData.product_type)[one.product_type_val]
-              let houseTypeList = one.house_type_list || []
-              one.house_type_list_val = []
-              houseTypeList.map(two => {
-                two.house_type_name = arrToObj(this.$dictData.house_type)[two.house_type_val]
-                one.house_type_list_val.push(String(two.house_type_val))
-              })
             })
-            this.productData = [...productData]
+            this.houseTypeArr = [...houseTypeArr]
             this.getDef()
             this.loading = false
           })
@@ -170,74 +124,56 @@ export default {
     },
   },
   methods: {
-    closePtPopup (bcData) {
-      this.isPtShow = false
-      if (bcData) {
-        let productData = [...this.productData]
-        let cObj = productData[bcData.index]
-        cObj.product_type_val = bcData.ptVal
-        cObj.product_type_name = bcData.ptName
-        productData[bcData.index] = cObj
-        this.productData = [...productData]
-        let params = {...this.$refs.ruleForm.baseForm}
-        let curPt = [...params.product_type]
-        curPt[bcData.index] = bcData.ptVal
-        params.product_type = curPt
-        this.setDefaultValue(params)
-      }
-    },
-    openPtPopup (row, index) {
-      this.isPtShow = true
-      this.ptObj = {
-        row,
-        index
-      }
-    },
-    houseTypeChange (one) {
-      let productData = [...this.productData]
-      let tempList = []
-      let houseTypeList = productData[one].house_type_list || []
-      const curVal = productData[one].house_type_list_val ||[]
-      curVal.forEach(v =>{
-        let cObj = {
-          house_type_name: arrToObj(this.$dictData.house_type)[v],
-          house_type_val: v,
-          area_list: [{img_url: '', area: '0'}]
-        }
-        houseTypeList.forEach((h, hIndex) =>{
-          if (v === String(h.house_type_val)) {
-            cObj.area_list = houseTypeList[hIndex].area_list || []
-          }
-        })
-        tempList.push(cObj)
+    houseTypeAdd () {
+      let houseTypeArr = [...this.houseTypeArr]
+      houseTypeArr.push({
+        house_type_val: '',
+        img_url: '',
+        area: '',
       })
-      productData[one].house_type_list = tempList
-      this.productData = [...productData]
-    },
-    roomAreaDel (one, two, three) {
-      let productData = [...this.productData]
-      productData[one].house_type_list[two].area_list.splice(three, 1)
-      this.productData = [...productData]
+      this.houseTypeArr = [...houseTypeArr]
     },
-    roomAreaAdd (one, two) {
-      let productData = [...this.productData]
-      productData[one].house_type_list[two].area_list.push({img_url: '', area: '0'})
-      this.productData = [...productData]
+    houseTypeDel (index) {
+      let houseTypeArr = [...this.houseTypeArr]
+      houseTypeArr.splice(index, 1)
+      this.houseTypeArr = [...houseTypeArr]
     },
-    roomAreaUploadImg (one, two, three) {
-      this.tempImgIndex = [one, two, three]
+    // houseTypeChange (index) {
+    //   let houseTypeArr = [...this.houseTypeArr]
+    //   house_type_val
+    //   let tempList = []
+    //   let houseTypeList = houseTypeArr[one].house_type_list || []
+    //   const curVal = houseTypeArr[one].house_type_list_val ||[]
+    //   curVal.forEach(v =>{
+    //     let cObj = {
+    //       house_type_name: arrToObj(this.$dictData.house_type)[v],
+    //       house_type_val: v,
+    //       area_list: [{img_url: '', area: '0'}]
+    //     }
+    //     houseTypeList.forEach((h, hIndex) =>{
+    //       if (v === String(h.house_type_val)) {
+    //         cObj.area_list = houseTypeList[hIndex].area_list || []
+    //       }
+    //     })
+    //     tempList.push(cObj)
+    //   })
+    //   houseTypeArr[one].house_type_list = tempList
+    //   this.houseTypeArr = [...houseTypeArr]
+    // },
+    houseTypeUploadImg (index) {
+      this.tempImgIndex = index
     },
-    roomAreaUploadSuccess(res, file) {
+    houseTypeUploadSuccess(res, file) {
       const data = res.data || {}
-      let productData = [...this.productData]
-      // productData[this.tempImgIndex[0]].house_type_list[this.tempImgIndex[1]].area_list[this.tempImgIndex[2]].img_url =  `${data.domain}${data.url}?url=${data.url}&id=${data.file_id}`
-      productData[this.tempImgIndex[0]].house_type_list[this.tempImgIndex[1]].area_list[this.tempImgIndex[2]].img_url =  `${data.url}`
-      this.productData = [...productData]
+      let houseTypeArr = [...this.houseTypeArr]
+      houseTypeArr[this.tempImgIndex].img_url =  `${data.url}`
+      this.houseTypeArr = [...houseTypeArr]
     },
-    roomAreaUploadError(file) {
+    houseTypeUploadError(file) {
+      this.$msg('上传失败')
       // this.changeHandle(file)
     },
-    roomAreaUploadBefore(file) {
+    houseTypeUploadBefore(file) {
       const isJPGPNG = file.type === 'image/jpeg' || file.type === 'image/png'
       const isLt2M = file.size / 1024 / 1024 < 2
       if (!isJPGPNG) {
@@ -248,27 +184,6 @@ export default {
       }
       return isJPGPNG && isLt2M
     },
-    metroLineChange (val) {
-      this.getDef('change', 'metro_line')
-    },
-    productTypeChange (val, op, item) {
-      const valArr = [...val]
-      const productData = [...this.productData]
-      let newArr = []
-      valArr.forEach(v => {
-        let vObj = {
-          product_type_name: arrToObj(this.$dictData.product_type)[v],
-          product_type_val: v,
-        }
-        productData.forEach(old =>{
-          if (v === String(old.product_type_val)) {
-            vObj = {...old}
-          }
-        })
-        newArr.push(vObj)
-      })
-      this.productData = [...newArr]
-    },
     getDef (str, strKey, strParams) {
       let params = {}
       if (str === 'change') {
@@ -276,42 +191,11 @@ export default {
       } else {
         params = { ...this.cObj }
       }
-      let metroLine = params.metro_line || []
-      let metroTypeArr = []
-      if (str === 'change' && strKey === 'metro_line') params.metro_type = ''
-      const metroTypeAll = this.$dictData.metro_type || []
-      metroTypeAll.map(item => {
-        metroLine.map(mline => {
-          if (item.option1.indexOf(mline) > -1) {
-            metroTypeArr.push(item)
-          }
-        })
-      })
       let disabled = false
       if (params.id) disabled = true
-      let remoteOptionsDkSchoolList = []
-      if (params.school_list && params.school_list.duikou && params.school_list.duikou.length > 0) {
-        params.school_dk_list = params.school_list.duikou.map(item => {
-          remoteOptionsDkSchoolList.push({ keyRO: item.school_name, valRO: item.id })
-          return item.id
-        })
-      } else {
-        params.school_dk_list = []
-      }
-      let remoteOptionsGhSchoolList = []
-      if (params.school_list && params.school_list.guihua && params.school_list.guihua.length > 0) {
-        params.school_gh_list = params.school_list.guihua.map(item => {
-          remoteOptionsGhSchoolList.push({ keyRO: item.school_name, valRO: item.id })
-          return item.id
-        })
-      } else {
-        params.school_gh_list = []
-      }
       this.formData = [
         { label: '楼盘名称', key: 'estate_name', rules: 1 },
         { label: '所属区域', key: 'area_type', type: 'select', class: 'c-3', options: this.$dictData.area_type },
-        { label: '地铁线路', key: 'metro_line', type: 'select', class: 'c-3', options: this.$dictData.metro_line, changeHandle: this.metroLineChange, multiple: true },
-        { label: '地铁站名', key: 'metro_type', type: 'select', class: 'c-3', options: metroTypeArr, multiple: true},
         // { label: '周边医院', key: 'hospital_type', type: 'select', class: 'c-3', options: this.$dictData.hospital_type, multiple: true },
         // { label: '周边商圈', key: 'high_street', type: 'select', class: 'c-3', options: this.$dictData.high_street, multiple: true },
         // { label: '周边公园', key: 'park_type', type: 'select', class: 'c-3', options: this.$dictData.park_type, multiple: true },
@@ -342,19 +226,11 @@ export default {
         { label: '初次交付时间', key: 'deliver_time', class: 'c-3', type: 'datePicker', type2: 'month', valueFormat: 'yyyy-MM'},
         { label: '楼盘单价', key: 'price_range', class: 'c-3', type: 'inputFont', appendFont: '/㎡', rules: 1 },
         { label: '户型面积区间', key: 'built_area', class: 'c-3', type: 'inputFont', appendFont: '㎡' },
-        { label: '产品类型', key: 'product_type', type: 'select', options: this.$dictData.product_type, multiple: true, changeHandle: this.productTypeChange},
+        { label: '产品类型', key: 'product_type', type: 'select', options: this.$dictData.product_type, multiple: true},
         // { label: '房型', key: 'house_type', type: 'select', options: this.$dictData.house_type, multiple: true},
         // { label: '面积', label2: '多个面积英文逗号,分开(如:100,120)', key: 'house_area', type: 'inputFont', appendFont: '㎡'},
         // { label: '均价范围1', key: 'price_min', class: 'c-3', type: 'inputFont', appendFont: '元(最小)'},
         // { label: '均价范围2', key: 'price_max', class: 'c-3', type: 'inputFont', appendFont: '元(最大)'},
-        { label: '对口学校', key: 'school_dk_list', type: 'selectRemote', multiple: true,
-          remoteParams: { skey: 'school_name', api: `school.admschoollist`, opKey: 'school_name', opVal: 'id' },
-          remoteOptions: remoteOptionsDkSchoolList
-        },
-        { label: '规划就读', key: 'school_gh_list', type: 'selectRemote', multiple: true,
-          remoteParams: { skey: 'school_name', api: `school.admschoollist`, opKey: 'school_name', opVal: 'id' },
-          remoteOptions: remoteOptionsGhSchoolList
-        },
         { label: '楼盘地址', key: 'address', rules: 1 },
         // { label: '是否新房', key: 'is_new', type: 'select', class: 'c-3', options: this.$dictData.sys_yesno, rules: 1 },
         // { label: '梯户比', label2: '如:2梯4户', key: 'stairs_rate', class: 'c-3' },
@@ -378,16 +254,6 @@ export default {
             const oldform = this.$refs.ruleForm.baseForm
             const newForm = { ...oldform }
             if (this.curObj.id) newForm.id = this.curObj.id
-            if (newForm.school_dk_list && newForm.school_dk_list.length > 0) {
-              newForm.school_dk_list = newForm.school_dk_list.join(',')
-            } else {
-              newForm.school_dk_list = ''
-            }
-            if (newForm.school_gh_list && newForm.school_gh_list.length > 0) {
-              newForm.school_gh_list = newForm.school_gh_list.join(',')
-            } else {
-              newForm.school_gh_list = ''
-            }
             newForm.longitude = this.cObj.longitude
             newForm.latitude = this.cObj.latitude
             if (!newForm.longitude) return this.$msgw('请选择经度!')
@@ -402,36 +268,25 @@ export default {
             newForm.custom_tag = newForm.custom_tag.replace(/,|、|\/|\\/g, ',')
             if (!newForm.standard) newForm.standard = ''
             // newForm.stairs_rate = newForm.stairs_rate.replace(',', ',')
-            let productData = this.productData || []
-            let pFlag = false
-            productData.forEach(pOne => {
-              if (!pOne.average_price || !pOne.house_type_list_val) {
-                pFlag = true
-              }
-              if (!pOne.stairs_rate) pOne.stairs_rate = ''
-            })
-            if (pFlag) {
-              this.$msg('请输入完整的产品均价、户型图!')
-              return
-            }
-            if (productData.length === 0) {
+            let houseTypeArr = this.houseTypeArr || []
+            if (houseTypeArr.length === 0) {
               newForm.area_data = ''
             } else {
-              newForm.area_data = JSON.stringify([...productData])
+              newForm.area_data = JSON.stringify([...houseTypeArr])
             }
             let apiStr = 'admestateadd'
             if (this.curObj.id) apiStr = 'admestateedit'
             newForm.pri_image = this.IMdel(newForm.pri_image)
             this.$api.house[apiStr](newForm).then(data => {
               this.$msgs(newForm.id ? '编辑成功' : '新增成功')
-              this.productData = []
+              this.houseTypeArr = []
               this.$emit('close', newForm)
             })
           }
         })
       } else {
         this.$emit('close')
-        this.productData = []
+        this.houseTypeArr = []
         this.setDefaultValue()
       }
     },
@@ -486,53 +341,31 @@ export default {
   margin-bottom: 10px;
 }
 
-.scoped-product {
-  width: 100%;
-  .sp-item {
-    position: relative;
-    border: 1px solid #dcdcdc;
+.scoped-house-type {
+  margin: 20px;
+  .sht-op {
+    text-align: center;
+    display: inline-block;
+    vertical-align: middle;
+    margin-right: 20px;
     margin-bottom: 10px;
-    margin-left: 55px;
-    margin-right: 30px;
-    border-radius: 10px;
-  }
-  .sp-title {
-    background: #dcdcdc;
-    font-weight: bold;
-    padding: 10px;
-    border-top-left-radius: 10px;
-    border-top-right-radius: 10px;
-    font-size: 14px;
-    color: #666;
-  }
-  .sp-content {
-    padding: 10px 10px 0;
-  }
-  .sc-input {
-    display: flex;
-  }
-}
-
-.room-box {
-  margin: 0 20px 10px 80px;
-  .room-item {
-    background: #f7f7f7;
-    border-radius: 10px;
     padding: 10px;
-    margin-bottom: 10px;
-  }
-  .ri-title {
-    color: #666;
-    margin-bottom: 10px;
+    border: 1px solid #dcdcdc;
   }
-  .ri-op {
+  .sht-add {
+    border: 1px dashed #0c78b1;
     text-align: center;
     display: inline-block;
     vertical-align: middle;
-    margin-right: 20px;
     margin-bottom: 10px;
+    width: 142px;
+    height: 142px;
+    line-height: 142px;
+    cursor: pointer;
+    font-size: 16px;
+    color: #0c78b1;
   }
-  .ri-img {
+  .sht-img {
     display: inline-block;
     vertical-align: middle;
     width: 82px;
@@ -540,8 +373,9 @@ export default {
     border: 1px dashed #999;
     position: relative;
     box-sizing: border-box;
+    margin-right: 10px;
     &:hover {
-      .ri-img-big {
+      .sht-img-big {
         display: block;
       }
     }
@@ -549,7 +383,7 @@ export default {
       width: 80px;
       height: 80px;
     }
-    .ri-img-big {
+    .sht-img-big {
       position: absolute;
       top: 80px;
       left: 0;
@@ -564,30 +398,33 @@ export default {
       padding: 30px;
     }
   }
-  .ri-deal {
+  .sht-deal {
     display: inline-block;
     vertical-align: middle;
-    width: 50px;
+    width: 140px;
   }
-  .ri-input {
-    width: 50px;
+  .sht-input {
+    width: 140px;
     border: 1px solid #dcdcdc;
-    height: 30px;
+    height: 36px;
     text-align: center;
     border-radius: 0;
     outline: none;
     color: #666;
     font-size: 12px;
-    margin-top: -5px;
+    margin-bottom: 10px;
+  }
+  .sht-select {
+    width: 140px;
+    margin-bottom: 10px;
   }
-  .ri-del {
+  .sht-del {
     font-size: 12px;
     background: #e6a23c;
     color: #fff;
     width: 100%;
     height: 26px;
     line-height: 26px;
-    margin-top: 10px;
     cursor: pointer;
     display: inline-block;
   }

+ 3 - 3
src/views/login/index.vue

@@ -6,7 +6,7 @@
     <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" auto-complete="on" label-position="left">
 
       <div class="title-container">
-        <h3 class="title">洪楼Plus管理系统</h3>
+        <h3 class="title">赣州房地产管理系统</h3>
       </div>
 
       <el-form-item prop="username">
@@ -154,7 +154,6 @@ $cursor: #fff;
     color: $cursor;
   }
 }
-
 /* reset element-ui css */
 .login-container {
   .el-input {
@@ -194,7 +193,8 @@ $cursor: #fff;
 
 <style lang="scss" scoped>
 $bg:#2d3a4b;
-$dark_gray:#889aa4;
+// $dark_gray:#889aa4;
+$dark_gray:#fff;
 $light_gray:#eee;
 
 .login-container {

BIN
src/views/login/login_bg.jpg


BIN
src/views/login/login_bg2.jpg


+ 1 - 1
src/views/plan/components/searchForm/Index.vue

@@ -45,7 +45,7 @@ export default {
         return
       }
       const token = window.sessionStorage.getItem('fp_token')
-      window.open(`https://api.honglouplus.com/adm/plan/export?token=${encodeURIComponent(token)}&start_at=${newForm.start_at}&end_at=${newForm.end_at}`)
+      window.open(`https://api.fangpiaovip.com/adm/plan/export?token=${encodeURIComponent(token)}&start_at=${newForm.start_at}&end_at=${newForm.end_at}`)
     }
   }
 }

+ 1 - 1
src/views/plan/components/searchForm/Yanfang.vue

@@ -45,7 +45,7 @@ export default {
         return
       }
       const token = window.sessionStorage.getItem('fp_token')
-      window.open(`https://api.honglouplus.com/adm/house/inspect/export?token=${encodeURIComponent(token)}&start_at=${newForm.start_at}&end_at=${newForm.end_at}`)
+      window.open(`https://api.fangpiaovip.com/adm/house/inspect/export?token=${encodeURIComponent(token)}&start_at=${newForm.start_at}&end_at=${newForm.end_at}`)
     }
   }
 }