yuwenjun1997 пре 2 година
родитељ
комит
59c650a5f0

+ 3 - 0
apis/index.js

@@ -108,6 +108,8 @@ export default ($axios) => {
   // 查询机构认证信息
   const fetchClubAuthInfoData = (params = {}) =>
     $axios.get('/auth/form/data', { params })
+  // 查询机构认证信息
+  const authClubSave = (data = {}) => $axios.post('/auth/save', data)
   // 高德地图api : 将坐标转化为高德地图坐标
   const assistant = (params = {}) =>
     fetch(
@@ -150,5 +152,6 @@ export default ($axios) => {
     clubUserLogin,
     clubUserCodeSend,
     fetchClubAuthInfoData,
+    authClubSave
   }
 }

+ 13 - 6
pages/_template/app/form/club-register.vue

@@ -165,6 +165,7 @@ export default {
     },
   },
   created() {
+    this.authId = this.$route.query.authId || ''
     this.initForm()
   },
   methods: {
@@ -242,13 +243,19 @@ export default {
 
     // 初始化表单
     async initForm() {
-      // 判断用户是否登录
-      if (!this.accessToken) {
-        this.registerType.push(1, 2)
+      if (this.authId) {
+        if (!this.accessToken) {
+          this.registerType.push(1)
+        }
       } else {
-        this.step = 2
-        this.stepList = this.stepList.filter((item) => item.id !== 1)
-        await this.initClubInfo()
+        // 判断用户是否登录
+        if (!this.accessToken) {
+          this.registerType.push(1, 2)
+        } else {
+          this.step = 2
+          this.stepList = this.stepList.filter((item) => item.id !== 1)
+          await this.initClubInfo()
+        }
       }
     },
 

+ 27 - 13
pages/_template/app/form/components/form-club-info.vue

@@ -222,19 +222,6 @@ export default {
     return {
       lnglat: null,
       mapVisiable: false,
-      clubTypeList: [
-        { value: 1, name: '医美' },
-        { value: 2, name: '生美' },
-        { value: 3, name: '项目公司' },
-        { value: 4, name: '个人' },
-        { value: 5, name: '其他' },
-      ],
-      medicalTypeList: [
-        { value: 1, name: '诊所' },
-        { value: 2, name: '门诊' },
-        { value: 3, name: '医院' },
-        { value: 4, name: '其他' },
-      ],
       formData: {
         name: '',
         address: [],
@@ -375,8 +362,10 @@ export default {
         const res = await this.$http.api.fetchAllCityList()
         console.log(res)
         this.provinceList = res.data
+        return res
       } catch (error) {
         console.log(error)
+        return Promise.reject(error)
       }
     },
 
@@ -401,6 +390,31 @@ export default {
       }
     },
 
+    async init(formData) {
+      this.formData.name = formData.authParty
+      this.formData.provinceId = formData.provinceId
+      this.formData.cityId = formData.cityId
+      this.formData.townId = formData.townId
+      this.formData.fullAddress = formData.address
+      this.formData.mobile = formData.mobile
+      this.formData.logoImage = formData.logo
+      this.formData.empNum = formData.empNum
+      this.formData.firstClubType = formData.firstClubType
+      this.formData.secondClubType = formData.secondClubType
+      this.formData.medicalLicenseImage = formData.medicalLicenseImage
+      this.formData.point = formData.lngAndLat
+      this.lnglat = formData.lngAndLat.split(',')
+      this.logoList = [{ name: '', url: formData.logo }]
+      this.bannerList = formData.bannerList.map((item) => ({
+        name: '',
+        url: item,
+      }))
+      this.licenseImageList = [{ name: '', url: formData.medicalLicenseImage }]
+
+      this.formData.banner =
+        this.bannerList.length > 0 ? this.bannerList.length : ''
+    },
+
     // 表单验证
     validate() {
       this.$emit('step', this.genetageFormData())

+ 49 - 128
pages/_template/app/record/club/edit.vue

@@ -6,106 +6,14 @@
     </div>
     <div class="page-content">
       <div class="page-title">机构认证</div>
-      <el-form
-        :model="formData"
-        :rules="rules"
-        ref="form"
-        label-position="left"
-      >
-        <el-form-item prop="mobile" label="机构名称:">
-          <el-input placeholder="请输入机构名称"></el-input>
-        </el-form-item>
-        <el-form-item prop="mobile" label="联系电话:">
-          <el-input placeholder="请输入对外联系电话"></el-input>
-        </el-form-item>
-        <el-form-item prop="mobile" label="所在地区:">
-          <br />
-          <div class="flex items-center justify-between">
-            <el-select placeholder="请选择" v-model="formData.a">
-              <el-option label="湖北" :value="1"> </el-option>
-              <el-option label="广东" :value="1"> </el-option>
-            </el-select>
-            <el-select placeholder="请选择" v-model="formData.b" class="mx-2">
-              <el-option label="湖北" :value="1"> </el-option>
-              <el-option label="广东" :value="1"> </el-option>
-            </el-select>
-            <el-select placeholder="请选择" v-model="formData.c">
-              <el-option label="湖北" :value="1"> </el-option>
-              <el-option label="广东" :value="1"> </el-option>
-            </el-select>
-          </div>
-          <el-input
-            class="mt-4"
-            type="textarea"
-            :rows="4"
-            placeholder="建议您如实填写详细收货地址,例如:街道名称,门牌号码,楼层和房间号等信息"
-          ></el-input>
-        </el-form-item>
-        <el-form-item prop="mobile" label="">
-          <div class="normal-row">
-            <div class="label">
-              所在位置:<span>(提示:打开地图,将定位图标移到具体位置)</span>
-            </div>
-            <div class="postion-btn">定位</div>
-          </div>
-          <!-- <el-input placeholder="地图坐标" v-show="false"></el-input> -->
-        </el-form-item>
-        <el-form-item prop="mobile" label="logo:">
-          <br />
-          <el-input v-show="false"></el-input>
-          <SimpleUploadImage :limit="1" />
-        </el-form-item>
-        <el-form-item prop="mobile">
-          <div class="normal-row">
-            <div class="label">门头照:<span>(可上传6张)</span></div>
-            <el-input v-show="false"></el-input>
-            <SimpleUploadImage :limit="6" />
-          </div>
-        </el-form-item>
-
-        <el-form-item label="机构类型:">
-          <br />
-          <SimpleRadio
-            :list="clubTypeList"
-            type="defalut"
-            v-model="formData.clubType"
-          />
-        </el-form-item>
-
-        <el-form-item label="医美类型:" v-if="formData.clubType === 1">
-          <br />
-          <SimpleRadio
-            :list="medicalTypeList1"
-            type="rect"
-            v-model="formData.medicalType"
-          />
-        </el-form-item>
-
-        <el-form-item label="生美类型:" v-if="formData.clubType === 2">
-          <br />
-          <SimpleRadio
-            :list="medicalTypeList2"
-            type="rect"
-            v-model="formData.medicalType"
-          />
-        </el-form-item>
-
-        <el-form-item label="医疗许可证:" prop="licenseImage">
-          <br />
-          <el-input v-show="false" v-model="formData.licenseImage" />
-          <SimpleUploadImage :limit="1" />
-        </el-form-item>
-
-        <el-form-item label="员工人数:" prop="memberCount">
-          <el-input
-            v-model.number="formData.memberCount"
-            placeholder="请输入员工人数"
-            clearable
-          />
-        </el-form-item>
-      </el-form>
+      <FormClubInfo ref="formClubInfo" @step="onClubInfoFormStep" />
       <div class="control flex flex-col items-center">
-        <div class="button submit flex justify-center items-center">提交</div>
+        <div
+          class="button submit flex justify-center items-center"
+          @click="onSubmit"
+        >
+          提交
+        </div>
       </div>
     </div>
   </div>
@@ -115,47 +23,60 @@
 import SimpleUploadImage from '@/components/SimpleUploadImage'
 import SimpleRadio from '@/components/SimpleRadio'
 import { mapGetters } from 'vuex'
+import FormClubInfo from '../../form/components/form-club-info.vue'
 export default {
   layout: 'app',
   components: {
     SimpleUploadImage,
     SimpleRadio,
+    FormClubInfo,
   },
   computed: {
-    ...mapGetters(['supplierInfo', 'authUserId', 'routePrefix']),
+    ...mapGetters(['supplierInfo', 'authUserId', 'routePrefix', 'clubUserId']),
   },
   data() {
     return {
-      clubTypeList: [
-        { value: 1, name: '医美' },
-        { value: 2, name: '生美' },
-        { value: 3, name: '项目公司' },
-        { value: 4, name: '个人' },
-        { value: 5, name: '其他' },
-      ],
-      medicalTypeList1: [
-        { value: 1, name: '诊所' },
-        { value: 2, name: '门诊' },
-        { value: 3, name: '医院' },
-        { value: 4, name: '其他' },
-      ],
-      medicalTypeList2: [
-        { value: 5, name: '美容院' },
-        { value: 6, name: '养生馆' },
-        { value: 7, name: '其他' },
-      ],
-      formData: {
-        clubType: 1,
-        medicalType: 1,
-        licenseImage: '',
-        memberCount: '',
-        a: '',
-        b: '',
-        c: '',
-      },
-      rules: {},
+      clubInfo: {},
+      formData: {},
     }
   },
+  created() {
+    this.fetchAuthDetail()
+  },
+  methods: {
+    async onSubmit() {
+      try {
+        await this.$refs.formClubInfo.validate()
+        this.formData.authUserId = this.authUserId
+        this.formData.source = 2
+        await this.$http.api.authClubSave(this.formData)
+        this.$toast('保存成功')
+        this.$router.push(`${this.routePrefix}/record/club/detail`)
+      } catch (error) {
+        console.log(error)
+      }
+    },
+
+    // 获取认证机构信息
+    async fetchAuthDetail() {
+      try {
+        const result = await this.$http.api.fetchClubAuthInfo({
+          clubUserId: this.clubUserId,
+        })
+        this.formData.authId = result.data.auth.authId
+        const res = await this.$http.api.fetchClubAuthInfoData({
+          authId: result.data.auth.authId,
+        })
+        this.clubInfo = res.data
+        this.$refs.formClubInfo.init(this.clubInfo)
+      } catch (error) {}
+    },
+
+    onClubInfoFormStep(data) {
+      console.log(data)
+      this.formData = data
+    },
+  },
 }
 </script>