yuwenjun1997 2 роки тому
батько
коміт
a619fcda24

+ 4 - 0
apis/index.js

@@ -116,6 +116,9 @@ export default ($axios) => {
   // 查询授权商品列表
   // 查询授权商品列表
   const getProductDetails = (params = {}) =>
   const getProductDetails = (params = {}) =>
     $axios.get('/wx/auth/product/form/data', { params })
     $axios.get('/wx/auth/product/form/data', { params })
+  // 编辑保存授权商品
+  const authProducSave = (data = {}) =>
+    $axios.post('/wx/auth/product/save', data)
   // 高德地图api : 将坐标转化为高德地图坐标
   // 高德地图api : 将坐标转化为高德地图坐标
   const assistant = (params = {}) =>
   const assistant = (params = {}) =>
     fetch(
     fetch(
@@ -161,5 +164,6 @@ export default ($axios) => {
     authClubSave,
     authClubSave,
     getClubAuthProductList,
     getClubAuthProductList,
     getProductDetails,
     getProductDetails,
+    authProducSave,
   }
   }
 }
 }

+ 40 - 2
pages/_template/app/form/components/form-club-device.vue

@@ -98,12 +98,13 @@
       </div>
       </div>
     </template>
     </template>
 
 
-    <div class="add-device" @click="insertOne">
+    <div class="add-device" @click="insertOne" v-if="formType !== 'edit'">
       <div class="add-icon"></div>
       <div class="add-icon"></div>
       添加设备
       添加设备
     </div>
     </div>
 
 
     <SimpleDialog
     <SimpleDialog
+      v-if="formType !== 'edit'"
       v-model="active"
       v-model="active"
       @confirm="active = false"
       @confirm="active = false"
       :cancel="false"
       :cancel="false"
@@ -120,6 +121,12 @@ export default {
   components: {
   components: {
     SimpleUploadImage,
     SimpleUploadImage,
   },
   },
+  props: {
+    formType: {
+      type: String,
+      default: 'add',
+    },
+  },
   data() {
   data() {
     const productNameValidate = (rule, value, callback) => {
     const productNameValidate = (rule, value, callback) => {
       if (value.toString().length > 50) {
       if (value.toString().length > 50) {
@@ -171,7 +178,36 @@ export default {
       this.$emit('step', this.formatFormList())
       this.$emit('step', this.formatFormList())
       return Promise.all(this.$refs.form.map((item) => item.validate()))
       return Promise.all(this.$refs.form.map((item) => item.validate()))
     },
     },
-
+    async init(formData) {
+      console.log('formData', formData)
+      const obj = {}
+      const productImageList = [
+        {
+          name: '',
+          url: formData?.productImage,
+        },
+      ]
+      const invoiceImageList = [
+        {
+          name: '',
+          url: formData.invoiceImage,
+        },
+      ]
+      obj.uuid = ++this.uuid
+      obj.productImageList = productImageList
+      obj.invoiceImageList = invoiceImageList
+      obj.productImage = formData.productImage
+      obj.productName = formData.productName
+      obj.snCode = formData.snCode
+      obj.brandId = formData.brandId
+      obj.productId = formData.productId
+      obj.productTypeId = formData.productTypeId
+      obj.purchaseWay = formData.purchaseWay
+      obj.invoiceImage = formData.invoiceImage
+      obj.paramList = formData.paramList
+      this.formList.splice(0, 1, obj)
+      console.log('formList', this.formList)
+    },
     formatFormList() {
     formatFormList() {
       const list = []
       const list = []
       this.formList.forEach((formItem) => {
       this.formList.forEach((formItem) => {
@@ -180,6 +216,8 @@ export default {
         obj.productName = formItem.productName
         obj.productName = formItem.productName
         obj.snCode = formItem.snCode
         obj.snCode = formItem.snCode
         obj.brandId = formItem.brandId
         obj.brandId = formItem.brandId
+        obj.productId = formItem.productId
+        obj.source = 2
         obj.productTypeId = formItem.productTypeId
         obj.productTypeId = formItem.productTypeId
         obj.purchaseWay = formItem.purchaseWay
         obj.purchaseWay = formItem.purchaseWay
         obj.invoiceImage = formItem.invoiceImage
         obj.invoiceImage = formItem.invoiceImage

+ 1 - 1
pages/_template/app/form/link-register.vue

@@ -5,7 +5,7 @@
         <div class="content">
         <div class="content">
           <div class="logo"><img :src="supplierInfo.logo" alt="" /></div>
           <div class="logo"><img :src="supplierInfo.logo" alt="" /></div>
           <div class="message">
           <div class="message">
-            完成账号注册与设备认证信息后,将获得<span>ROSS</span>授权牌匾制作及寄送
+            完成账号注册与设备认证信息后,将获得<span>{{supplierInfo.shopName}}</span>授权牌匾制作及寄送
           </div>
           </div>
           <div class="control">
           <div class="control">
             <div class="button" @click="toRegister">点击进入</div>
             <div class="button" @click="toRegister">点击进入</div>

+ 14 - 5
pages/_template/app/record/device/detail.vue

@@ -44,10 +44,10 @@
           <div class="params-list">
           <div class="params-list">
             <div class="param"
             <div class="param"
               v-for="param in productInfo.paramList"
               v-for="param in productInfo.paramList"
-              :key="param.authId"
+              :key="param.productName"
             >
             >
-              <div class="param-name">{{ param.productName }}</div>
-              <div class="param-content">{{ param.productName }}</div>
+              <div class="param-name">{{ param.paramName }}</div>
+              <div class="param-content">{{ param.paramContent }}</div>
             </div>
             </div>
           </div>
           </div>
         </div>
         </div>
@@ -62,7 +62,7 @@
         <div class="col">{{ productInfo.invalidReason ? productInfo.invalidReason : '暂无' }}</div>
         <div class="col">{{ productInfo.invalidReason ? productInfo.invalidReason : '暂无' }}</div>
       </div>
       </div>
 
 
-      <div class="control flex flex-col items-center">
+      <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="button edit flex justify-center items-center"  @click="onEdit">编辑</div>
       </div>
       </div>
     </div>
     </div>
@@ -119,7 +119,7 @@ export default {
       return map[value]
       return map[value]
     },
     },
     onEdit() {
     onEdit() {
-      this.$router.push(`${this.routePrefix}/record/device/edit?id=${this.productId}`)
+      this.$router.push(`${this.routePrefix}/record/device/edit?type=edit&id=${this.productId}`)
     },
     },
   }  
   }  
 }
 }
@@ -170,6 +170,9 @@ export default {
         justify-content: flex-start;
         justify-content: flex-start;
         align-items: flex-start;
         align-items: flex-start;
         margin-bottom: 8px;
         margin-bottom: 8px;
+        .param-name{
+          margin-right: 20px;
+        }
       }
       }
     }
     }
 
 
@@ -204,6 +207,8 @@ export default {
         width: 120px;
         width: 120px;
         height: 120px;
         height: 120px;
         margin-right: 12px;
         margin-right: 12px;
+        box-sizing: border-box;
+        border-radius: 4px;
       }
       }
     }
     }
 
 
@@ -268,6 +273,9 @@ export default {
         justify-content: flex-start;
         justify-content: flex-start;
         align-items: flex-start;
         align-items: flex-start;
         margin-bottom: 8px;
         margin-bottom: 8px;
+        .param-name{
+          margin-right: 10px;
+        }
       }
       }
     }
     }
 
 
@@ -293,6 +301,7 @@ export default {
       .el-image {
       .el-image {
         width: 26vw;
         width: 26vw;
         height: 26vw;
         height: 26vw;
+        border-radius: 1vw;
       }
       }
     }
     }
 
 

+ 30 - 70
pages/_template/app/record/device/edit.vue

@@ -6,107 +6,67 @@
     </div>
     </div>
     <div class="page-content">
     <div class="page-content">
       <div class="page-title">设备认证</div>
       <div class="page-title">设备认证</div>
-      <el-form :model="formData" :rules="rules">
-        <el-form-item label="设备名称:">
-          <el-select
-            v-model="formData.deviceName"
-            filterable
-            allow-create
-            placeholder="请输入新设备名称或选择已有设备"
-          >
-            <el-option label="中国" :value="1"> </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item prop="mobile" label="设备图片:">
-          <br />
-          <el-input v-show="false"></el-input>
-          <SimpleUploadImage :limit="1" />
-        </el-form-item>
-        <el-form-item label="所属品牌:">
-          <el-select v-model="formData.deviceName" placeholder="请选择品牌">
-            <el-option label="中国" :value="1"> </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item prop="mobile" label="购买渠道:">
-          <el-input placeholder="请输入购买渠道"></el-input>
-        </el-form-item>
-        <el-form-item prop="mobile" label="发票:">
-          <br />
-          <el-input v-show="false"></el-input>
-          <SimpleUploadImage :limit="1" />
-        </el-form-item>
-        <el-form-item prop="mobile" label="设备SN码:">
-          <el-input placeholder="请输入设备SN码"></el-input>
-        </el-form-item>
-        <el-form-item prop="mobile" label="设备参数:">
-          <br />
-          <div class="device-param-list">
-            <span class="add-param">添加参数</span>
-            <template v-for="i in 3">
-              <div :key="i">
-                <div class="param flex justify-between mb-4">
-                  <el-input placeholder="例如:品牌" class="mr-2"></el-input>
-                  <el-input placeholder="请输入参数信息"></el-input>
-                  <span class="remove el-icon-close"></span>
-                </div>
-              </div>
-            </template>
-          </div>
-        </el-form-item>
-      </el-form>
+      <FormClubDevice ref="formClubDevice" :formType="formType" @step="onClubDeviceFormStep" />
       <div class="control flex flex-col items-center">
       <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>
     </div>
   </div>
   </div>
 </template>
 </template>
 
 
 <script>
 <script>
-import SimpleUploadImage from '@/components/SimpleUploadImage'
+import FormClubDevice from '../../form/components/form-club-device.vue'
 import { mapGetters } from 'vuex'
 import { mapGetters } from 'vuex'
 export default {
 export default {
   layout: 'app',
   layout: 'app',
   components: {
   components: {
-    SimpleUploadImage,
+    FormClubDevice
   },
   },
   data() {
   data() {
     return {
     return {
-      formData: {
-        deviceName: '',
-      },
-      rules: {},
+      productInfo: {},
+      formData: {},
+      productId:0,
+      formType:'',
     }
     }
   },
   },
   computed: {
   computed: {
-    ...mapGetters(['supplierInfo', 'authUserId', 'routePrefix']),
+    ...mapGetters(['supplierInfo', 'authUserId', 'routePrefix','authId']),
   },
   },
   mounted() {
   mounted() {
-    this.initData()
+    this.formType = this.$route.query.type
+    this.getProductDetails()
   },
   },
   methods: {
   methods: {
-    initData() {
-      this.productId = this.$route.query.id
-      console.log('productId',this.productId)
-      this.getProductDetails()
+    async onSubmit() {
+      try {
+        await this.$refs.formClubDevice.validate()
+        if(this.formType === 'edit'){
+          this.formData.authId = this.authId
+        }
+        await this.$http.api.authProducSave(this.formData)
+        this.$toast('保存成功')
+        this.$router.push(`${this.routePrefix}/record/device/detail?id=${this.productId}`)
+      } catch (error) {
+        console.log(error)
+      }
     },
     },
     // 获取认证机构信息
     // 获取认证机构信息
     async getProductDetails() {
     async getProductDetails() {
       try {
       try {
+        this.productId = this.$route.query.id
         const res = await this.$http.api.getProductDetails({
         const res = await this.$http.api.getProductDetails({
           productId: this.productId,
           productId: this.productId,
         })
         })
         this.productInfo = res.data
         this.productInfo = res.data
-        console.log('res',this.productInfo)
+        console.log('productInfo',this.productInfo)
+        this.$refs.formClubDevice.init(this.productInfo)
       } catch (error) {}
       } catch (error) {}
     },
     },
-    auditStatusColor(value) {// 认证状态:0 danger,1 success,2 warning
-      const map = {
-          0: 'danger',
-          1: 'success',
-          2: 'warning',
-      }
-      return map[value]
-    },
+    onClubDeviceFormStep(data) {
+      console.log(data)
+       this.formData = data[0]
+    }
   }  
   }  
 }
 }
 </script>
 </script>

+ 2 - 3
pages/_template/app/record/device/index.vue

@@ -17,7 +17,7 @@
           <div class="page-title">设备认证</div>
           <div class="page-title">设备认证</div>
           <div class="device-list"
           <div class="device-list"
             v-for="item in list"
             v-for="item in list"
-            :key="item.authId"
+            :key="item.productId"
             @click="toEdit(item)"
             @click="toEdit(item)"
           >
           >
             <div class="device">
             <div class="device">
@@ -56,7 +56,7 @@ export default {
       list: [],
       list: [],
       listQuery: {
       listQuery: {
         authId: 0,
         authId: 0,
-        listType:1,
+        listType:2,
         pageNum: 1,
         pageNum: 1,
         pageSize: 10,
         pageSize: 10,
       },
       },
@@ -114,7 +114,6 @@ export default {
     },
     },
     // 加载更多
     // 加载更多
     onLoadMore() {
     onLoadMore() {
-      console.log('111111111')
       this.authProductList()
       this.authProductList()
     },
     },
   },
   },