Forráskód Böngészése

v1.7版本接口调试

yuwenjun1997 2 éve
szülő
commit
c1f4164799

+ 4 - 4
.env.development

@@ -2,13 +2,13 @@
 EVN = 'development'
 
 # 网站地址
-# LOCALHOSE = 'https://zp-b.caimei365.com'
+LOCALHOSE = 'https://zp-b.caimei365.com'
 # LOCALHOSE = 'http://192.168.2.81:8888'
-LOCALHOSE = 'http://192.168.2.92:8888'
+# LOCALHOSE = 'http://192.168.2.92:8888'
 
 # 接口api地址
-# BASE_URL = 'https://zplma-b.caimei365.com'
-BASE_URL = 'http://192.168.2.68:8012'
+BASE_URL = 'https://zplma-b.caimei365.com'
+# BASE_URL = 'http://192.168.2.68:8012'
 
 # 静态资源文件地址
 STATIC_URL = 'https://static.caimei365.com/www/authentic'

+ 11 - 2
components/SimpleDialog/index.vue

@@ -23,14 +23,14 @@
           v-if="confirm"
           @click="onConfirm"
         >
-          确定
+          {{ confirmText }}
         </div>
         <div
           class="simple-dialog__cancel simple-dialog__btn"
           v-if="cancel"
           @click="onCancel"
         >
-          取消
+          {{ cancelText }}
         </div>
       </div>
     </div>
@@ -44,6 +44,14 @@ export default {
     event: 'change',
   },
   props: {
+    confirmText: {
+      type: String,
+      default: '确定',
+    },
+    cancelText: {
+      type: String,
+      default: '取消',
+    },
     value: {
       type: Boolean,
       default: false,
@@ -90,6 +98,7 @@ export default {
     position: fixed;
     top: 0;
     left: 0;
+    z-index: 10001;
     background: rgba(0, 0, 0, 0.39);
 
     .simple-dialog__container {

+ 19 - 5
components/SimpleLogin/index.vue

@@ -226,14 +226,28 @@ export default {
       this.$setStorage(this.routePrefix, 'userInfo', res.data)
       // 关闭登录窗口
       this.onClose()
-      // 重定向
-      const login_redicret = this.$getStorage(
+      // this.$router.push(this.routePrefix)
+
+      const clubRegisterLink = this.$getStorage(
         this.routePrefix,
-        'login_redicret'
+        'club-register-link'
       )
-      if (login_redicret && login_redicret !== this.$route.path) {
-        this.$router.push(login_redicret)
+      if (clubRegisterLink) {
+        this.$removeStorage(this.routePrefix, 'club-register-link')
+        this.$setStorage(this.routePrefix, 'bind-flag', true)
+        this.$router.push(clubRegisterLink)
+      } else {
+        this.$router.push(this.routePrefix)
       }
+
+      // 重定向
+      // const login_redicret = this.$getStorage(
+      //   this.routePrefix,
+      //   'login_redicret'
+      // )
+      // if (login_redicret && login_redicret !== this.$route.path) {
+      //   this.$router.push(login_redicret)
+      // }
     },
 
     // 关闭登录窗口

+ 0 - 3
components/SimpleStep/index.vue

@@ -47,8 +47,6 @@ export default {
 
       position: relative;
       padding-bottom: 4px;
-      cursor: pointer;
-
       &.active {
         .simple-step__line {
           position: absolute;
@@ -79,7 +77,6 @@ export default {
 
       position: relative;
       padding-bottom: 1.2vw;
-      cursor: pointer;
 
       &.active {
         color: #282828;

+ 4 - 2
pages/_template/app/approve/club/detail.vue

@@ -281,8 +281,9 @@ export default {
           display: block;
           width: 16px;
           height: 16px;
+          margin-left: 4px;
           @include themify($themes) {
-            background: themed('icon-arround-right-pc') no-repeat center;
+            background: themed('icon-navigation-pc') no-repeat center;
           }
           background-size: 16px;
         }
@@ -452,8 +453,9 @@ export default {
           display: block;
           width: 3.6vw;
           height: 3.6vw;
+          margin-left: 0.4vw;
           @include themify($themes) {
-            background: themed('icon-arround-right-h5') no-repeat center;
+            background: themed('icon-navigation-pc') no-repeat center;
           }
           background-size: 3.6vw;
         }

+ 6 - 2
pages/_template/app/approve/personnel/operate/detail.vue

@@ -137,7 +137,9 @@ export default {
           display: inline-block;
           width: 76px;
           height: 28px;
-          background: url(https://static.caimei365.com/www/authentic/pc/icon-doctor-level.png);
+          @include themify($themes) {
+            background: themed('icon-doctor-level-pc') no-repeat;
+          }
           background-size: 76px 28px;
           vertical-align: -5px;
           margin-left: 8px;
@@ -249,7 +251,9 @@ export default {
           display: inline-block;
           width: 13.6vw;
           height: 5vw;
-          background: url(https://static.caimei365.com/www/authentic/h5/icon-doctor-level.png);
+          @include themify($themes) {
+            background: themed('icon-doctor-level-h5') no-repeat;
+          }
           background-size: 13.6vw 5vw;
           vertical-align: -0.8vw;
           margin-left: 1.2vw;

+ 1 - 0
pages/_template/app/database/article.vue

@@ -115,6 +115,7 @@ export default {
     },
     // 搜索
     onSearch(keyword) {
+      this.list = []
       this.listQuery.articleTitle = keyword
       this.listQuery.pageNum = 1
       this.fetchList()

+ 1 - 0
pages/_template/app/database/file.vue

@@ -122,6 +122,7 @@ export default {
     },
     // 搜索
     onSearch(keyword) {
+      this.list = []
       this.listQuery.fileTitle = keyword
       this.listQuery.pageNum = 1
       this.fetchList()

+ 1 - 0
pages/_template/app/database/image.vue

@@ -135,6 +135,7 @@ export default {
     },
     // 搜索
     onSearch(keyword) {
+      this.list = []
       this.listQuery.imageTitle = keyword
       this.listQuery.pageNum = 1
       this.fetchList()

+ 1 - 0
pages/_template/app/database/package.vue

@@ -118,6 +118,7 @@ export default {
     },
     // 搜索
     onSearch(keyword) {
+      this.list = []
       this.listQuery.fileTitle = keyword
       this.listQuery.pageNum = 1
       this.fetchList()

+ 1 - 0
pages/_template/app/database/video.vue

@@ -130,6 +130,7 @@ export default {
     },
     // 搜索
     onSearch(keyword) {
+      this.list = []
       this.listQuery.videoTitle = keyword
       this.listQuery.pageNum = 1
       this.fetchList()

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

@@ -129,8 +129,6 @@ export default {
 
       // 机构授权id
       authId: '',
-      // 机构用户id
-      clubUserId: '',
 
       autidStatus: 0,
     }
@@ -143,6 +141,7 @@ export default {
       'routePrefix',
       'accessToken',
       'userInfo',
+      'clubUserId',
     ]),
 
     autidStatusClass() {
@@ -185,13 +184,13 @@ export default {
 
     async onNextStep() {
       const validateAction = {
-        1: this.$refs.userForm?.validate(),
-        2: this.$refs.clubInfoForm?.validate(),
-        3: this.$refs.clubDeviceForm?.validate(),
+        1: this.$refs.userForm?.validate,
+        2: this.$refs.clubInfoForm?.validate,
+        3: this.$refs.clubDeviceForm?.validate,
       }
       try {
         // 表单校验
-        await validateAction[this.step]
+        validateAction[this.step] && (await validateAction[this.step]())
         // 提交
         if (this.step === 3) {
           this.onSubmit()
@@ -203,6 +202,7 @@ export default {
       } catch (error) {
         console.log(error)
       }
+      console.log('userfomr', this.clubUserInfo)
     },
     onPrevStep() {
       this.step > 1 && this.step--

+ 44 - 3
pages/_template/app/form/components/form-club-device.vue

@@ -1,7 +1,13 @@
 <template>
   <div class="club-device">
     <template v-for="formItem in formList">
-      <div :key="formItem.uid">
+      <div :key="formItem.uid" class="device-section">
+        <span
+          class="remove-btn"
+          @click="removeOne(formItem)"
+          v-if="formList.length > 1"
+          >删除这台设备</span
+        >
         <el-form :model="formItem" :rules="rules" ref="form">
           <el-form-item prop="productName" :label="`设备名称${formItem.uuid}:`">
             <el-select
@@ -107,8 +113,9 @@
       v-if="formType !== 'edit'"
       v-model="active"
       @confirm="active = false"
+      confirmText="好的"
       :cancel="false"
-      description="请慎重填写机构信息,认证通过后将无法更改!"
+      description="请慎重填写机构信息,认证通过后将 无法更改!"
       :center="true"
     />
   </div>
@@ -155,6 +162,16 @@ export default {
           { required: true, message: '设备SN码不能为空', trigger: ['blur'] },
         ],
         paramList: [{ required: true, message: '参数不能为空' }],
+        purchaseWay: [
+          {
+            required: true,
+            message: '请输入购买渠道不能为空',
+            trigger: ['blur'],
+          },
+        ],
+        invoiceImage: [
+          { required: true, message: '请上传发票', trigger: ['change'] },
+        ],
       },
       formList: [],
       brandList: [],
@@ -278,7 +295,12 @@ export default {
     insertOne() {
       this.formList.push(this.generateFormData())
     },
-    removeOne() {},
+    removeOne(formItem) {
+      const index = this.formList.findIndex(
+        (item) => item.uuid === formItem.uuid
+      )
+      this.formList.splice(index, 1)
+    },
     onProductNameChange(formItem, value) {
       if (typeof value === 'number') {
         formItem.productTypeId = value
@@ -362,6 +384,25 @@ export default {
   .el-select {
     width: 100%;
   }
+
+  .device-section {
+    position: relative;
+
+    .el-form {
+      padding-bottom: 10px;
+    }
+
+    .remove-btn {
+      position: absolute;
+      right: 0;
+      bottom: 24px;
+      font-size: 16px;
+      color: #f94b4b;
+      text-decoration: underline;
+      cursor: pointer;
+    }
+  }
+
   .device-param-list {
     position: relative;
     .add-param {

+ 47 - 12
pages/_template/app/form/components/form-club-info.vue

@@ -61,15 +61,16 @@
         ></el-input>
       </el-form-item>
       <el-form-item prop="point" label="">
-        <el-input v-model="formData.point" v-show="false"></el-input>
         <div class="normal-row">
           <div class="label">
             <i>*</i>所在位置:<span
               >(提示:打开地图,将定位图标移到具体位置)</span
             >
           </div>
+
           <div class="postion-btn" @click="initMap">定位</div>
         </div>
+        <el-input v-model="formData.point" disabled></el-input>
       </el-form-item>
       <el-form-item prop="logoImage" label="logo:">
         <br />
@@ -96,7 +97,7 @@
         </div>
       </el-form-item>
 
-      <el-form-item label="机构类型:">
+      <el-form-item label="机构类型:" prop="firstClubType">
         <!-- <el-radio-group v-model="formData.firstClubType">
           <el-radio :label="1">医美</el-radio>
           <el-radio :label="2">生美</el-radio>
@@ -104,29 +105,45 @@
           <el-radio :label="4">个人</el-radio>
           <el-radio :label="5">其他</el-radio>
         </el-radio-group> -->
-        <SimpleRadio v-model="formData.firstClubType" :list="clubTypeList"/>
+        <SimpleRadio v-model="formData.firstClubType" :list="clubTypeList" />
       </el-form-item>
 
-      <el-form-item v-if="formData.firstClubType === 1" label="医美类型:">
+      <el-form-item
+        v-if="formData.firstClubType === 1"
+        label="医美类型:"
+        prop="secondClubType"
+      >
         <!-- <el-radio-group v-model="formData.secondClubType">
           <el-radio :label="1">诊所</el-radio>
           <el-radio :label="2">门诊</el-radio>
           <el-radio :label="3">医院</el-radio>
           <el-radio :label="4">其他</el-radio>
         </el-radio-group> -->
-        <SimpleRadio v-model="formData.secondClubType" :list="medicalTypeList1" type="rect"/>
+        <SimpleRadio
+          v-model="formData.secondClubType"
+          :list="medicalTypeList1"
+          type="rect"
+        />
       </el-form-item>
 
-      <el-form-item v-if="formData.firstClubType === 2" label="生美类型:">
+      <el-form-item
+        v-if="formData.firstClubType === 2"
+        label="生美类型:"
+        prop="secondClubType"
+      >
         <!-- <el-radio-group v-model="formData.secondClubType">
           <el-radio :label="5">美容院</el-radio>
           <el-radio :label="6">养生馆</el-radio>
           <el-radio :label="7">其他</el-radio>
         </el-radio-group> -->
-        <SimpleRadio v-model="formData.secondClubType" :list="medicalTypeList2" type="rect"/>
+        <SimpleRadio
+          v-model="formData.secondClubType"
+          :list="medicalTypeList2"
+          type="rect"
+        />
       </el-form-item>
 
-      <el-form-item label="医疗许可证:" prop="medicalLicenseImage">
+      <el-form-item label="医疗许可证:" prop="medicalLicenseImage" v-if="formData.firstClubType === 1">
         <br />
         <el-input v-show="false" v-model="formData.medicalLicenseImage" />
         <SimpleUploadImage
@@ -177,7 +194,8 @@
       v-model="active"
       @confirm="active = false"
       :cancel="false"
-      description="请慎重填写设备信息,认证通过后将无法更改!"
+      confirmText="好的"
+      description="请慎重填写机构信息,认证通过后将无法更改!"
       :center="true"
     />
   </div>
@@ -238,18 +256,18 @@ export default {
         { value: 2, name: '生美' },
         { value: 3, name: '项目公司' },
         { value: 4, name: '个人' },
-        { value: 5, name: '其他' }
+        { value: 5, name: '其他' },
       ],
       medicalTypeList1: [
         { value: 1, name: '诊所' },
         { value: 2, name: '门诊' },
         { value: 3, name: '医院' },
-        { value: 4, name: '其他' }
+        { value: 4, name: '其他' },
       ],
       medicalTypeList2: [
         { value: 5, name: '美容院' },
         { value: 6, name: '养生馆' },
-        { value: 7, name: '其他' }
+        { value: 7, name: '其他' },
       ],
       active: true,
       lnglat: null,
@@ -315,6 +333,23 @@ export default {
         empNum: [
           { required: true, message: '员工人数不能为空', trigger: ['blur'] },
         ],
+        firstClubType: [
+          { required: true, message: '机构类型不能为空', trigger: ['change'] },
+        ],
+        secondClubType: [
+          {
+            required: true,
+            message: '医美类型/生美类型不能为空',
+            trigger: ['change'],
+          },
+        ],
+        medicalLicenseImage: [
+          {
+            required: true,
+            message: '医疗许可证不能为空',
+            trigger: ['change'],
+          },
+        ],
       },
       // logo图片列表
       logoList: [],

+ 32 - 2
pages/_template/app/form/components/form-club-register.vue

@@ -3,11 +3,13 @@
     <el-form :model="formData" :rules="rules" ref="form" label-width="0">
       <el-form-item prop="mobile">
         <el-input
+          type="text"
           v-model="formData.mobile"
           placeholder="手机号"
           @blur="onMobileBlur"
           maxlength="11"
           show-word-limit
+          @input="handleMobileInput"
         ></el-input>
       </el-form-item>
       <el-form-item prop="verifyCode">
@@ -17,6 +19,7 @@
             placeholder="验证码"
             maxlength="6"
             show-word-limit
+            @input="handleVerifyCodeInput"
           ></el-input>
           <div class="send ml-8" @click="onSend">{{ sendCodeBtnText }}</div>
         </div>
@@ -47,6 +50,7 @@
       v-model="active"
       @confirm="onConfirm"
       @cancel="onCancel"
+      confirmText="去登录"
       description="抱歉,该手机号已注册,您可以登录后再来进行正品授权申请!"
       :center="true"
     />
@@ -66,6 +70,14 @@ export default {
       }
     }
 
+    const mobileValidate = (rule, value, callback) => {
+      if (!isMobile(value)) {
+        callback(new Error('手机号格式不正确'))
+      } else {
+        callback()
+      }
+    }
+
     return {
       formData: {
         mobile: '',
@@ -73,11 +85,13 @@ export default {
         password: '',
         confirmPwd: '',
       },
+      registerStatus: true, // 能否注册
       sendStatus: 0,
       active: false,
       rules: {
         mobile: [
           { required: true, message: '手机号不能为空', trigger: ['blur'] },
+          { validator: mobileValidate, trigger: ['blur'] },
         ],
         verifyCode: [
           { required: true, message: '验证码不能为空', trigger: ['blur'] },
@@ -103,6 +117,8 @@ export default {
   },
   methods: {
     async onSend() {
+      if (!this.registerStatus) return (this.active = true)
+
       if (this.sendStatus > 0) return
       // 验证手机号是否合法
       if (!isMobile(this.formData.mobile)) {
@@ -124,6 +140,16 @@ export default {
       }
     },
 
+    // 输入框输入时
+    handleMobileInput() {
+      this.formData.mobile = this.formData.mobile.replace(/\D/gi, '')
+    },
+
+    // 输入框输入时
+    handleVerifyCodeInput() {
+      this.formData.verifyCode = this.formData.verifyCode.replace(/\D/gi, '')
+    },
+
     countdown() {
       this.sendStatus = 30
       this.timer = setInterval(() => {
@@ -143,11 +169,12 @@ export default {
     },
 
     onMobileBlur() {
-      this.checkouMobileBindClub()
+      if (isMobile(this.formData.mobile)) {
+        this.checkouMobileBindClub()
+      }
     },
     // 判断用户手机号是否绑定机构
     async checkouMobileBindClub() {
-      if (!isMobile(this.formData.mobile)) return
       try {
         const res = await this.$http.api.fetchClubAuthInfo({
           authUserId: this.authUserId,
@@ -155,6 +182,9 @@ export default {
         })
         if (res.data.clubUser) {
           this.active = true
+          this.registerStatus = false
+        } else {
+          this.registerStatus = true
         }
       } catch (error) {
         console.log(error)

+ 62 - 27
pages/_template/app/form/link-register.vue

@@ -5,20 +5,29 @@
         <div class="content">
           <div class="logo"><img :src="supplierInfo.logo" alt="" /></div>
           <div class="message">
-            完成账号注册与设备认证信息后,将获得<span>{{supplierInfo.shopName}}</span>授权牌匾制作及寄送
+            完成账号注册与设备认证信息后,将获得<span>{{
+              supplierInfo.shopName
+            }}</span
+            >授权牌匾制作及寄送
           </div>
           <div class="control">
-            <div class="button" @click="toRegister">点击进入</div>
+            <div
+              class="button"
+              @click="toRegister"
+              v-if="!isRequest && bindStatus === 0"
+            >
+              点击进入
+            </div>
           </div>
         </div>
       </div>
     </div>
 
     <SimpleDialog
-      v-model="active"
+      v-model="dialogActive"
       @confirm="onConfirm"
       :cancel="false"
-      description="抱歉,该手机号已注册,您可以登录后再来进行正品授权申请!"
+      :description="dialogText"
       :center="true"
     />
   </div>
@@ -31,8 +40,9 @@ export default {
   data() {
     return {
       authId: '',
-      clubUser: null,
-      active: false,
+      dialogActive: false,
+      isRequest: false,
+      bindStatus: 0,
     }
   },
   computed: {
@@ -43,50 +53,75 @@ export default {
       'accessToken',
       'userInfo',
     ]),
+    dialogText() {
+      return this.bindStatus === 1
+        ? '该链接认证信息已被账号注册!'
+        : '抱歉,当前登录手机号已绑定机构,您可以登录后再来进行正品授权申请!'
+    },
+
+    redirectLink() {
+      return `${this.routePrefix}/form/club-register?type=link&authId=${this.authId}`
+    },
   },
 
   created() {
     this.authId = this.$route.query.authId
-    if(this.accessToken) this.checkouMobileBindClub()
+    this.checkoutClubIsBind()
   },
 
   methods: {
+    // 跳转首页
     onConfirm() {
       this.$router.push(`${this.routePrefix}`)
     },
 
-    // 判断用户手机号是否绑定机构
-    async checkouMobileBindClub() {
+    // 判断机构是否已经被绑定
+    async checkoutClubIsBind() {
+      this.isRequest = true
       try {
         const res = await this.$http.api.fetchClubAuthInfo({
           authUserId: this.authUserId,
-          mobile: this.userInfo.mobile,
+          authId: this.authId,
         })
-        this.clubUser = res.data.clubUser
+        const auth = res.data.auth
+        if (auth) {
+          this.bindStatus = auth.bindStatus
+          this.dialogActive = auth.bindStatus === 1
+        }
+        this.isRequest = false
       } catch (error) {
         console.log(error)
       }
     },
 
-    toRegister() {
-      //  已登录
-      // 	  用户未绑定机构
-      // 		  填写设备信息提交认证即可
-      // 	  用户已绑定机构(提示:该用户已绑定机构)
-      //  未登录
-      // 	  填写用户信息
-      // 		  手机号已绑定机构(提示:该手机号已绑定机构)
-      // 		  手机号未绑定机构
-      // 			  下一步:填写设备信息提交认证即可
-      const link = `${this.routePrefix}/form/club-register?type=link&authId=${this.authId}`
+    // 跳转注册页面
+    async toRegister() {
       if (this.accessToken) {
-        if (this.clubUser) {
-          this.active = true
-        } else {
-          this.$router.push(link)
+        try {
+          const res = await this.$http.api.fetchClubAuthInfo({
+            authUserId: this.authUserId,
+            mobile: this.userInfo.mobile,
+          })
+          if (res.data.auth) {
+            this.dialogActive = true
+          } else {
+            this.$router.push(this.redirectLink)
+          }
+        } catch (error) {
+          console.log(error)
         }
       } else {
-        this.$router.push(link)
+        // 未登录状态缓存
+        const bindFlag = this.$getStorage(this.routePrefix, 'bind-flag')
+        if (bindFlag) this.$removeStorage(this.routePrefix, 'bind-flag')
+        if (!bindFlag) {
+          this.$setStorage(
+            this.routePrefix,
+            'club-register-link',
+            this.$route.fullPath
+          )
+        }
+        this.$router.push(this.redirectLink)
       }
     },
   },

+ 13 - 2
pages/_template/app/record/club/detail.vue

@@ -75,13 +75,24 @@
           <div class="col">状态:</div>
           <div class="col">
             <div class="status">
-              <span class="success" v-if="clubInfo.auditStatus === 1">认证成功</span>
-              <span class="warning" v-else-if="clubInfo.auditStatus === 2">认证中</span>
+              <span class="success" v-if="clubInfo.auditStatus === 1"
+                >认证成功</span
+              >
+              <span class="warning" v-else-if="clubInfo.auditStatus === 2"
+                >认证中</span
+              >
               <span class="danger" v-else>认证失败</span>
             </div>
           </div>
         </div>
 
+        <div class="row" v-if="clubInfo.auditStatus === 0">
+          <div class="col">原因:</div>
+          <div class="col">
+            {{ clubInfo.invalidReason ? clubInfo.invalidReason : '暂无' }}
+          </div>
+        </div>
+
         <div class="control flex flex-col items-center">
           <div
             class="button edit flex justify-center items-center mb-2"

+ 45 - 24
pages/_template/app/record/device/detail.vue

@@ -15,6 +15,7 @@
         <div class="col">
           <el-image
             :src="productInfo.productImage"
+            :preview-src-list="[productInfo.productImage]"
           ></el-image>
         </div>
       </div>
@@ -31,6 +32,7 @@
         <div class="col">
           <el-image
             :src="productInfo.invoiceImage"
+            :preview-src-list="[productInfo.invoiceImage]"
           ></el-image>
         </div>
       </div>
@@ -42,7 +44,8 @@
         <div class="col">设备参数:</div>
         <div class="col">
           <div class="params-list">
-            <div class="param"
+            <div
+              class="param"
               v-for="param in productInfo.paramList"
               :key="param.productName"
             >
@@ -54,16 +57,28 @@
       </div>
       <div class="row">
         <div class="col">状态:</div>
-        <div class="col" :class="auditStatusColor(productInfo.auditStatus)">{{ productInfo.auditStatus | auditStatusFilter }}</div>
+        <div class="col" :class="auditStatusColor(productInfo.auditStatus)">
+          {{ productInfo.auditStatus | auditStatusFilter }}
+        </div>
       </div>
 
-      <div class="row">
+      <div class="row" v-if="productInfo.auditStatus === 0">
         <div class="col">原因:</div>
-        <div class="col">{{ productInfo.invalidReason ? productInfo.invalidReason : '暂无' }}</div>
+        <div class="col">
+          {{ productInfo.invalidReason ? productInfo.invalidReason : '暂无' }}
+        </div>
       </div>
 
-      <div class="control flex flex-col items-center" v-if="productInfo.auditStatus === 0">
-        <div class="button edit flex justify-center items-center"  @click="onEdit">编辑</div>
+      <div
+        class="control flex flex-col items-center"
+        v-if="productInfo.auditStatus === 0"
+      >
+        <div
+          class="button edit flex justify-center items-center"
+          @click="onEdit"
+        >
+          编辑
+        </div>
       </div>
     </div>
   </div>
@@ -75,20 +90,21 @@ export default {
   layout: 'app',
   data() {
     return {
-      productId:'',
+      productId: '',
       productInfo: {},
     }
   },
   filters: {
-		auditStatusFilter(value) {// 认证状态:0审核未通过,1审核通过,2待审核
+    auditStatusFilter(value) {
+      // 认证状态:0审核未通过,1审核通过,2待审核
       const map = {
-          0: '审核未通过',
-          1: '审核通过',
-          2: '待审核',
+        0: '审核未通过',
+        1: '审核通过',
+        2: '待审核',
       }
       return map[value]
-    }
-	},
+    },
+  },
   computed: {
     ...mapGetters(['supplierInfo', 'authUserId', 'routePrefix']),
   },
@@ -106,22 +122,27 @@ export default {
         const res = await this.$http.api.getProductDetails({
           productId: this.productId,
         })
-        this.productInfo = res.data
-        console.log('res',this.productInfo)
-      } catch (error) {}
+        this.productInfo = { ...this.productInfo, ...res.data }
+        console.log('res', this.productInfo)
+      } catch (error) {
+        console.log(error)
+      }
     },
-    auditStatusColor(value) {// 认证状态:0 danger,1 success,2 warning
+    auditStatusColor(value) {
+      // 认证状态:0 danger,1 success,2 warning
       const map = {
-          0: 'danger',
-          1: 'success',
-          2: 'warning',
+        0: 'danger',
+        1: 'success',
+        2: 'warning',
       }
       return map[value]
     },
     onEdit() {
-      this.$router.push(`${this.routePrefix}/record/device/edit?type=edit&id=${this.productId}`)
+      this.$router.push(
+        `${this.routePrefix}/record/device/edit?type=edit&id=${this.productId}`
+      )
     },
-  }  
+  },
 }
 </script>
 
@@ -170,7 +191,7 @@ export default {
         justify-content: flex-start;
         align-items: flex-start;
         margin-bottom: 8px;
-        .param-name{
+        .param-name {
           margin-right: 20px;
         }
       }
@@ -273,7 +294,7 @@ export default {
         justify-content: flex-start;
         align-items: flex-start;
         margin-bottom: 8px;
-        .param-name{
+        .param-name {
           margin-right: 10px;
         }
       }

+ 8 - 2
themes/variables/normal.scss

@@ -4,12 +4,14 @@ $mormalTuple: (
   hover-color: #960915,
   cover-color: linear-gradient(180deg, #ffe6e8 0%, rgba(255, 255, 255, 0) 100%),
   // pc端
+  icon-doctor-level-pc:
+    url('https://static.caimei365.com/www/authentic/pc/icon-doctor-level.png'),
   icon-phone-active-pc:
     url('https://static.caimei365.com/www/authentic/pc/icon-phone-active.png'),
   icon-address-active-pc:
     url('https://static.caimei365.com/www/authentic/pc/icon-address-active.png'),
-  icon-arround-right-pc:
-    url('https://static.caimei365.com/www/authentic/pc/icon-arround-right.png'),
+  icon-navigation-pc:
+    url('https://static.caimei365.com/www/authentic/pc/icon-navigation.png'),
   banner-home-pc:
     url('https://static.caimei365.com/www/authentic/pc/bg-home.png'),
   banner-approve-pc:
@@ -29,6 +31,10 @@ $mormalTuple: (
   banner-club-register:
     url('https://static.caimei365.com/www/authentic/pc/ross-bg-club-register.png'),
   // 移动端
+  icon-doctor-level-h5:
+    url('https://static.caimei365.com/www/authentic/h5/icon-doctor-level.png'),
+  icon-navigation-h5:
+    url('https://static.caimei365.com/www/authentic/h5/icon-navigation.png'),
   icon-phone-active-h5:
     url('https://static.caimei365.com/www/authentic/h5/icon-phone-active.png'),
   icon-address-active-h5:

+ 8 - 0
themes/variables/ross.scss

@@ -4,6 +4,10 @@ $rossTuple: (
   sub-color: #ffebcf,
   cover-color: linear-gradient(180deg, #ffebcf 0%, rgba(255, 255, 255, 0) 100%),
   // pc端
+  icon-doctor-level-pc:
+    url('https://static.caimei365.com/www/authentic/pc/icon-doctor-level.png'),
+  icon-navigation-pc:
+    url('https://static.caimei365.com/www/authentic/pc/ross-icon-navigation.png'),
   icon-phone-active-pc:
     url('https://static.caimei365.com/www/authentic/pc/ross-icon-phone-active.png'),
   icon-address-active-pc:
@@ -29,6 +33,10 @@ $rossTuple: (
   banner-club-register:
     url('https://static.caimei365.com/www/authentic/pc/ross-bg-club-register.png'),
   // 移动端
+  icon-doctor-level-h5:
+    url('https://static.caimei365.com/www/authentic/h5/icon-doctor-level.png'),
+  icon-navigation-h5:
+    url('https://static.caimei365.com/www/authentic/h5/ross-icon-navigation.png'),
   icon-phone-active-h5:
     url('https://static.caimei365.com/www/authentic/h5/ross-icon-phone-active.png'),
   icon-address-active-h5: