zhuliu 1 år sedan
förälder
incheckning
c76a2ea6bb
50 ändrade filer med 1629 tillägg och 167 borttagningar
  1. 8 3
      app.json
  2. 17 0
      app.wxss
  3. 11 0
      myComponents/formItem/form.wxss
  4. 1 1
      myComponents/formItem/formItem.wxml
  5. 5 2
      myComponents/formItem/formItem.wxss
  6. 9 1
      myComponents/product/product.js
  7. 6 3
      myComponents/product/product.wxml
  8. 107 1
      pages/form/appeal/appeal.js
  9. 14 1
      pages/form/appeal/appeal.json
  10. 130 1
      pages/form/appeal/appeal.wxml
  11. 49 1
      pages/form/appeal/appeal.wxss
  12. 71 2
      pages/form/application/application.js
  13. 5 1
      pages/form/application/application.json
  14. 98 5
      pages/form/application/application.wxml
  15. 46 3
      pages/form/application/application.wxss
  16. 122 1
      pages/form/rightsProtection/rightsProtection.js
  17. 14 1
      pages/form/rightsProtection/rightsProtection.json
  18. 116 1
      pages/form/rightsProtection/rightsProtection.wxml
  19. 49 1
      pages/form/rightsProtection/rightsProtection.wxss
  20. 99 1
      pages/form/riskAssessment/riskAssessment.js
  21. 14 1
      pages/form/riskAssessment/riskAssessment.json
  22. 76 1
      pages/form/riskAssessment/riskAssessment.wxml
  23. 38 1
      pages/form/riskAssessment/riskAssessment.wxss
  24. 35 32
      pages/hotProduct/hotProduct.js
  25. 9 2
      pages/hotProduct/hotProduct.wxml
  26. 0 18
      pages/logs/logs.js
  27. 0 5
      pages/logs/logs.json
  28. 0 6
      pages/logs/logs.wxml
  29. 0 16
      pages/logs/logs.wxss
  30. 26 10
      pages/monitor/monitor.js
  31. 10 2
      pages/monitor/monitor.wxml
  32. 26 10
      pages/myFollow/myFollow.js
  33. 10 2
      pages/myFollow/myFollow.wxml
  34. 28 10
      pages/myWork/myWork.js
  35. 12 3
      pages/myWork/myWork.wxml
  36. 27 1
      pages/riskAssessment/riskAssessment.js
  37. 8 1
      pages/riskAssessment/riskAssessment.wxml
  38. 27 10
      pages/searchRecords/searchRecords.js
  39. 12 3
      pages/searchRecords/searchRecords.wxml
  40. 66 0
      pages/searchResults/searchResults.js
  41. 3 0
      pages/searchResults/searchResults.json
  42. 4 0
      pages/searchResults/searchResults.wxml
  43. 1 0
      pages/searchResults/searchResults.wxss
  44. 116 0
      pages/successReminder/successReminder.js
  45. 4 0
      pages/successReminder/successReminder.json
  46. 14 0
      pages/successReminder/successReminder.wxml
  47. 20 0
      pages/successReminder/successReminder.wxss
  48. 6 2
      static/iconfont/iconfont.wxss
  49. 1 1
      utils/request.js
  50. 59 0
      utils/upload.js

+ 8 - 3
app.json

@@ -1,7 +1,6 @@
 {
   "pages": [
     "pages/index/index",
-    "pages/logs/logs",
     "pages/mine/mine",
     "pages/login/login",
     "pages/riskAssessment/riskAssessment",
@@ -14,7 +13,9 @@
     "pages/form/application/application",
     "pages/form/rightsProtection/rightsProtection",
     "pages/form/appeal/appeal",
-    "pages/form/riskAssessment/riskAssessment"
+    "pages/form/riskAssessment/riskAssessment",
+    "pages/searchResults/searchResults",
+    "pages/successReminder/successReminder"
   ],
   "tabBar": {
     "list": [
@@ -46,7 +47,11 @@
   "usingComponents": {
     "i-button": "/miniprogram_npm/@vant/weapp/button",
     "myInput": "/myComponents/myInput/myInput",
-    "van-notify": "/miniprogram_npm/@vant/weapp/notify/index"
+    "van-notify": "/miniprogram_npm/@vant/weapp/notify/index",
+    "wux-refresher": "/miniprogram_npm/wux-weapp/refresher/index",
+    "wux-spin": "/miniprogram_npm/wux-weapp/spin/index",
+    "navBar": "/myComponents/navBar/navBar",
+    "van-empty": "/miniprogram_npm/@vant/weapp/empty/index"
   },
   "componentFramework": "glass-easel",
   "sitemapLocation": "sitemap.json",

+ 17 - 0
app.wxss

@@ -42,3 +42,20 @@ button[type=primary]{
   font-weight: bolder;
   border-radius: 10rpx;
 }
+
+.form_dropdown{
+  height: 50rpx !important;
+  box-shadow:none !important;
+}
+.form_dropdown>.van-dropdown-menu__item{
+  justify-content:flex-start !important;
+}
+.form_radio{
+  display: flex;
+  justify-content: space-around;
+  align-items: center;
+  flex-direction: row;
+}
+.label{
+  font-size: 35rpx;
+}

+ 11 - 0
myComponents/formItem/form.wxss

@@ -0,0 +1,11 @@
+.form_label>.left{
+  font-size: 35rpx;
+  background-color: var(--themeColor) !important;
+  border-radius: 15rpx 0 0 15rpx;
+  color: #ffffff;
+}
+.form_label>.right{
+  font-size: 35rpx;
+  border-radius: 0 15rpx 15rpx 0;
+  background-color: #ffffff;
+}

+ 1 - 1
myComponents/formItem/formItem.wxml

@@ -1,5 +1,5 @@
 <!--myComponents/formItem/formItem.wxml-->
-<view class="myFormItem {{customClass}}">
+<view class="{{customClass}} myFormItem">
 	<view class="left" id="label" style="width: {{labelWidth?labelWidth:200}}rpx;text-align: {{labelPosition}};">
 		<view class="left_label">
       <slot name="label"></slot>

+ 5 - 2
myComponents/formItem/formItem.wxss

@@ -1,4 +1,5 @@
 /* myComponents/formItem/formItem.wxss */
+@import "./form.wxss";
 page{
 	--padding:15rpx;
 }
@@ -8,7 +9,8 @@ page{
 	line-height: 50rpx;
 	display: flex;
 	align-items: stretch;
-	margin: 10rpx 0;
+  margin: 10rpx 0;
+  background-color: #ffffff;
 }
 .left{
 	border: 1rpx solid var(--themeColor);
@@ -26,7 +28,8 @@ page{
 	border-radius: 0 5rpx 5rpx 0;
 	padding: var(--padding);
 	width: 100%;
-	height: initial;
+  height: initial;
+  background-color: #ffffff;
 }
 
 .left_label:empty{

+ 9 - 1
myComponents/product/product.js

@@ -16,6 +16,10 @@ Component({
     total:{
       type:Number,
       value:null
+    },
+    loading:{
+      type:Boolean,
+      value:false
     }
   },
 
@@ -68,7 +72,11 @@ Component({
     //加载更多
     loadMore(){
       this.triggerEvent('loadMore')
-    }
+    },
+    //查看爆款产品专利
+    checkMessage(){
+
+    },
   },
    /**  
    * 组件的生命周期函数列表  

+ 6 - 3
myComponents/product/product.wxml

@@ -1,10 +1,11 @@
 <!--myComponents/product/product.wxml-->
 <view class="product_content">
-  <view class="product_item" wx:for="{{tableData}}" wx:for-index="index" wx:key="index">
+  <view class="product_item" wx:for="{{tableData}}" wx:for-index="index" wx:key="index" bind:tap="checkMessage">
     <swiper class="swiper" autoplay="{{true}}" interval="{{3000}}"  duration="{{500}}" indicator-dots="{{false}}">  
       <block wx:if="{{item.systemFileList.length>0}}">  
         <swiper-item wx:for="{{item.systemFileList}}" wx:for-item="img" wx:key="*this">  
-          <image src="{{imgHttp+img.guid}}" class="slide-image" data-current="{{img}}" data-imgList="{{item.systemFileList}}" bindtap="previewImage"/>  
+          <image src="{{imgHttp+img.guid}}" class="slide-image" />  
+          <!-- <image src="{{imgHttp+img.guid}}" class="slide-image" data-current="{{img}}" data-imgList="{{item.systemFileList}}" bindtap="previewImage"/>   -->
         </swiper-item>  
       </block>  
       <swiper-item wx:else>
@@ -21,6 +22,7 @@
       </view>
     </view>
     <view class="product_operate" wx-if="{{item.show}}">
+    {{item.show}}
       <view class="cancel" data-index="{{index}}" bind:tap="cancel">×</view>
       <view class="grids"  bordered="{{ false }}">
         <view class="grid" data-type="1" data-index="{{index}}" bind:tap="attention">
@@ -43,6 +45,7 @@
   </view>
   <view class="foot" wx:if="{{total && tableData.length>0}}">
     <view wx:if="{{total>tableData.length}}" bind:tap="loadMore">加载更多</view>
-    <view wx:else>没有更多了</view>
+    <wux-spin wux-class="spin" size="small" wx:elif="{{loading}}"/>
+    <view wx:elif="{{total>10}}">没有更多了</view>
   </view>
 </view>

+ 107 - 1
pages/form/appeal/appeal.js

@@ -1,11 +1,27 @@
 // pages/form/appeal/appeal.js
+const upload = require("../../../utils/upload")
+import { $wuxForm} from '../../../miniprogram_npm/wux-weapp/index'
 Page({
 
   /**
    * 页面的初始数据
    */
   data: {
-
+    validateMessages: {
+      required: '%s 字段为必填',
+    },
+    form:{
+      type:0,
+      isOriginal:1,
+      complaintType:1,
+    },
+    labelWidth:350,
+    countrys:[
+      { text: '美国站', value: 0 },
+      { text: '日本站', value: 1 },
+      { text: '德国站', value: 2 },
+      { text: '英国站', value: 3 },
+    ]
   },
 
   /**
@@ -29,6 +45,96 @@ Page({
 
   },
 
+
+  /**
+   * 页面方法集合
+   */
+  //表单栏位值发生变化时
+  onValuesChange(e) {
+    console.log(e)
+    const { changedValues, allValues } = e.detail
+    // this.setValues(changedValues)
+    Object.keys(changedValues).forEach((field) => {
+      this.setData({
+          ['form.'+field]: changedValues[field],
+      })
+    })
+    console.log('onValuesChange \n', changedValues, allValues)
+  },
+  //手机号校验
+  checkPhone(rule, value){
+    if(!value){
+      return Promise.reject(new Error('手机号不能为空!'))
+    }
+    const isTel = (value) => /^1[34578]\d{9}$/.test(value)
+    if(!isTel(value)){
+      return Promise.reject(new Error('手机号输入错误!'))
+    }
+    return Promise.resolve()
+  },
+  //上传文件
+  uploadFile(){
+    const that = this;  
+    wx.chooseMessageFile({  
+      count: 1, // 默认9,表示一次最多可以选择的文件个数  
+      type: 'file', // 可以指定是文件  
+      success(res) {  
+        // 返回选定文件的本地文件路径列表,tempFilePath可以作为文件上传的标识  
+        const tempFilePaths = res.tempFilePaths[0];  
+        upload(tempFilePaths).then(res=>{
+          console.log(res)
+        })
+      }  
+    }); 
+  },
+  //输入备注
+  changRemark(e){
+    this.setData(
+      {
+        ["form.remark"]:e.detail.value
+      }
+    )
+  },
+  //修改商品是否原创
+  onChange2(e){
+    this.setData(
+      {
+        ["form.isOriginal"]:e.detail.value
+      }
+    )
+  },
+  //修改被投诉类型
+  onChange1(e){
+    this.setData(
+      {
+        ["form.complaintType"]:e.detail.value
+      }
+    )
+  },
+  //修改被投诉类型
+  onChange3(e){
+    this.setData(
+      {
+        ["form.haveNegotiated"]:e.detail.value
+      }
+    )
+  },
+  //提交工单
+  submit(){
+    const { validateFields } = $wuxForm()
+    wx.navigateTo({
+      url: '/pages/successReminder/successReminder?id=1',
+    })
+    validateFields((err, values) => {
+      console.log(err)
+        if (!err) {
+
+        }
+    })
+  },
+
+
+
   /**
    * 生命周期函数--监听页面隐藏
    */

+ 14 - 1
pages/form/appeal/appeal.json

@@ -1,3 +1,16 @@
 {
-  "usingComponents": {}
+  "navigationStyle": "custom",
+  "usingComponents": {
+    "wux-form": "/miniprogram_npm/wux-weapp/form",
+    "wux-field":"/miniprogram_npm/wux-weapp/field/index",
+    "wux-input":"/miniprogram_npm/wux-weapp/input/index",
+    "navBar": "/myComponents/navBar/navBar",
+    "van-dropdown-menu": "/miniprogram_npm/@vant/weapp/dropdown-menu/index",
+    "van-dropdown-item": "/miniprogram_npm/@vant/weapp/dropdown-item/index",
+    "my-form-item":"/myComponents/formItem/formItem",
+    "van-radio": "/miniprogram_npm/@vant/weapp/radio/index",
+    "van-radio-group": "/miniprogram_npm/@vant/weapp/radio-group/index",
+    "wux-upload": "/miniprogram_npm/wux-weapp/upload/index",
+    "wux-textarea": "/miniprogram_npm/wux-weapp/textarea/index"
+  }
 }

+ 130 - 1
pages/form/appeal/appeal.wxml

@@ -1,2 +1,131 @@
 <!--pages/form/appeal/appeal.wxml 申诉-->
-<text>pages/form/appeal/appeal.wxml</text>
+<navBar></navBar>
+<van-notify id="van-notify" />
+<view class="appeal">
+  <view class="headTitle">
+    知识产权应诉
+  </view>
+  <scroll-view scroll-y class="form">
+    <wux-form
+      id="wux-form"
+      layout="none"
+      validateMessages="{{ validateMessages }}"
+      bind:change="onValuesChange"
+    >
+      <wux-field name="ADIN" initialValue="{{''}}" rules="{{ [{ required: true } ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            <van-dropdown-menu custom-class="form_dropdown1">
+              <van-dropdown-item value="{{ form.type }}" options="{{ countrys }}" />
+            </van-dropdown-menu>
+          </view>
+          <wux-input  placeholder="请输入投诉方ADIN号" />
+        </my-form-item>
+      </wux-field>
+      <wux-field name="ADIN2" initialValue="{{''}}" rules="{{ [{ required: true } ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            <van-dropdown-menu custom-class="form_dropdown1">
+              <van-dropdown-item value="{{ form.type }}" options="{{ countrys }}" />
+            </van-dropdown-menu>
+          </view>
+          <wux-input  placeholder="请输入被投诉方ADIN号" />
+        </my-form-item>
+      </wux-field>
+      <wux-field name="isOriginal" initialValue="{{''}}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            商品是否原创
+          </view>
+          <van-radio-group value="{{ form.isOriginal }}" bind:change="onChange2" >
+            <view class="form_radio">
+              <van-radio name="{{1}}">是</van-radio>
+              <van-radio name="{{2}}">否</van-radio>
+            </view>
+          </van-radio-group>
+        </my-form-item>
+      </wux-field>
+      <wux-field name="complaintType" initialValue="{{''}}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            被投诉类型
+          </view>
+          <van-radio-group value="{{ form.complaintType }}" bind:change="onChange1" >
+            <view class="form_radio">
+              <van-radio name="{{1}}">商标</van-radio>
+              <van-radio name="{{2}}">专利</van-radio>
+              <van-radio name="{{3}}">版权</van-radio>
+            </view>
+          </van-radio-group>
+        </my-form-item>
+      </wux-field>
+      <wux-field name="patentNo" initialValue="{{''}}" >
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            专利号
+          </view>
+          <wux-input maxlength="11" placeholder="请输入您的专利号" />
+        </my-form-item>
+      </wux-field>
+
+      <wux-field name="img" initialValue="{{''}}" >
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            被投诉截图
+          </view>
+          <wux-upload
+            listType="picture-card"
+            showUploadList="{{ false }}"
+            url="https://www.skyvow.cn/api/common/file"
+            bind:change="onChange"
+            bind:success="onSuccess"
+            bind:fail="onFail"
+            bind:complete="onComplete"
+            bind:preview="onPreview"
+          >
+            <image src="{{ imageUrl }}" wx:if="{{ imageUrl }}" />
+            <text wx:else>Upload</text>
+          </wux-upload>
+        </my-form-item>
+      </wux-field>
+      <wux-field name="haveNegotiated" initialValue="{{''}}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            是否协商过
+          </view>
+          <van-radio-group value="{{ form.haveNegotiated }}" bind:change="onChange3" >
+            <view class="form_radio">
+              <van-radio name="{{1}}">是</van-radio>
+              <van-radio name="{{2}}">否</van-radio>
+            </view>
+          </van-radio-group>
+        </my-form-item>
+      </wux-field>
+      <wux-field name="phone" initialValue="{{''}}" rules="{{ [{ required: true },{validator:'checkPhone'} ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            联系电话
+          </view>
+          <wux-input maxlength="11" placeholder="请输入手机号" />
+        </my-form-item>
+      </wux-field>
+      <wux-field name="person" initialValue="{{''}}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            联系人
+          </view>
+          <wux-input maxlength="11" placeholder="请输入联系人" />
+        </my-form-item>
+      </wux-field>
+    </wux-form>
+    <view class="label">
+      请详细说明被投诉全过程
+    </view>
+    <view class="value">
+      <wux-textarea value="{{ form.value }}" bind:change="changRemark"/>
+    </view>
+    <view class="foot" bind:tap="submit">
+      提交
+    </view>
+  </scroll-view>
+</view>

+ 49 - 1
pages/form/appeal/appeal.wxss

@@ -1 +1,49 @@
-/* pages/form/appeal/appeal.wxss */
+/* pages/form/appeal/appeal.wxss */
+.appeal{
+  padding: 0 25rpx;
+  height: calc(100% - 150rpx);
+  background-color: #ffffff;
+}
+.form_dropdown1{
+  height: 50rpx !important;
+  box-shadow:none !important;
+  background-color: var(--themeColor) !important;
+}
+.form_dropdown1>.van-dropdown-menu__item{
+  justify-content:flex-start !important;
+}
+.form_dropdown1 .van-dropdown-menu__title{
+  color: #ffffff !important;
+}
+.form{
+  height: 1050rpx;
+  margin-top: 10rpx;
+}
+.label{
+  background-color: var(--themeColor);
+  text-align: center;
+  line-height: 60rpx;
+  color: #ffffff;
+  border-radius: 10rpx;
+}
+.upload{
+  margin: 15rpx 0;
+  border: 1px solid var(--themeColor);
+  border-radius: 15rpx;
+  text-align: center;
+  line-height: 120rpx;
+}
+.value{
+  padding: 15rpx;
+  margin: 15rpx 0;
+  border: 1px solid var(--themeColor);
+  border-radius: 15rpx;
+  min-height: 120rpx;
+}
+.foot{
+  padding: 15rpx 25rpx;
+  background-color: var(--themeColor);
+  color: #ffffff;
+  text-align: center;
+  border-radius: 15rpx;
+}

+ 71 - 2
pages/form/application/application.js

@@ -1,4 +1,6 @@
 // pages/form/application/application.js
+const upload = require("../../../utils/upload")
+import { $wuxForm} from '../../../miniprogram_npm/wux-weapp/index'
 Page({
 
   /**
@@ -7,7 +9,20 @@ Page({
   data: {
     validateMessages: {
       required: '%s 字段为必填',
-  },
+    },
+    form:{
+      type:0,
+      isApplyOverseas:1,
+      hagueCertification:1,
+    },
+    labelWidth:350,
+    typeOptions:[
+      { text: '发明专利', value: 0 },
+      { text: '外观设计', value: 1 },
+      { text: '实用新型', value: 2 },
+      { text: '商标', value: 3 },
+      { text: '版权', value: 4 },
+    ]
   },
 
   /**
@@ -42,7 +57,7 @@ Page({
     // this.setValues(changedValues)
     Object.keys(changedValues).forEach((field) => {
       this.setData({
-          ['loginMessage.'+field]: changedValues[field],
+          ['form.'+field]: changedValues[field],
       })
     })
     console.log('onValuesChange \n', changedValues, allValues)
@@ -58,6 +73,60 @@ Page({
     }
     return Promise.resolve()
   },
+  //上传文件
+  uploadFile(){
+    const that = this;  
+    wx.chooseMessageFile({  
+      count: 1, // 默认9,表示一次最多可以选择的文件个数  
+      type: 'file', // 可以指定是文件  
+      success(res) {  
+        // 返回选定文件的本地文件路径列表,tempFilePath可以作为文件上传的标识  
+        const tempFilePaths = res.tempFilePaths[0];  
+        upload(tempFilePaths).then(res=>{
+          console.log(res)
+        })
+      }  
+    }); 
+  },
+  //输入备注
+  changRemark(e){
+    this.setData(
+      {
+        ["form.remark"]:e.detail.value
+      }
+    )
+  },
+  //修改是否海外申请
+  onChange2(e){
+    this.setData(
+      {
+        ["form.isApplyOverseas"]:e.detail.value
+      }
+    )
+  },
+  //修改一同申请海牙认证
+  onChange1(e){
+    this.setData(
+      {
+        ["form.hagueCertification"]:e.detail.value
+      }
+    )
+  },
+  //提交工单
+  submit(){
+    const { validateFields } = $wuxForm()
+    wx.navigateTo({
+      url: '/pages/successReminder/successReminder?id=3',
+    })
+    validateFields((err, values) => {
+      console.log(err)
+        if (!err) {
+
+        }
+    })
+  },
+
+
 
   /**
    * 生命周期函数--监听页面隐藏

+ 5 - 1
pages/form/application/application.json

@@ -7,6 +7,10 @@
     "navBar": "/myComponents/navBar/navBar",
     "van-dropdown-menu": "/miniprogram_npm/@vant/weapp/dropdown-menu/index",
     "van-dropdown-item": "/miniprogram_npm/@vant/weapp/dropdown-item/index",
-    "my-form-item":"/myComponents/formItem/formItem"
+    "my-form-item":"/myComponents/formItem/formItem",
+    "van-radio": "/miniprogram_npm/@vant/weapp/radio/index",
+    "van-radio-group": "/miniprogram_npm/@vant/weapp/radio-group/index",
+    "wux-upload": "/miniprogram_npm/wux-weapp/upload/index",
+    "wux-textarea": "/miniprogram_npm/wux-weapp/textarea/index"
   }
 }

+ 98 - 5
pages/form/application/application.wxml

@@ -5,22 +5,115 @@
   <view class="headTitle">
     我要申请专利
   </view>
-  <view class="form">
+  <scroll-view scroll-y class="form">
     <wux-form
       id="wux-form"
       layout="none"
       validateMessages="{{ validateMessages }}"
       bind:change="onValuesChange"
     >
-      <wux-field name="phone" label="手机号" initialValue="{{''}}" rules="{{ [{ required: true },{validator:'checkPhone'} ] }}">
-        
-        <my-form-item custom-class="form_label">
+      <wux-field name="applicationType" initialValue="{{''}}" rules="{{ [{ required: true } ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
           <view slot="label" >
             申请类型
           </view>
+          <van-dropdown-menu custom-class="form_dropdown">
+            <van-dropdown-item value="{{ form.type }}" options="{{ typeOptions }}" />
+          </van-dropdown-menu>
+        </my-form-item>
+      </wux-field>
+      <wux-field name="applyingCountry" initialValue="{{''}}" rules="{{ [{ required: true } ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            申请国家
+          </view>
+          <wux-input  placeholder="请输入国家名称" />
+        </my-form-item>
+      </wux-field>
+      <wux-field name="industry" initialValue="{{''}}" rules="{{ [{ required: true } ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            所属行业
+          </view>
+          <wux-input  placeholder="请输入所属行业" />
+        </my-form-item>
+      </wux-field>
+      <wux-field name="technologyType" initialValue="{{''}}" rules="{{ [{ required: true } ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            技术类型
+          </view>
+          <wux-input  placeholder="请输入技术类型" />
+        </my-form-item>
+      </wux-field>
+      <wux-field name="isApplyOverseas" initialValue="{{''}}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            是否海外申请
+          </view>
+          <van-radio-group value="{{ form.isApplyOverseas }}" bind:change="onChange2" >
+            <view class="form_radio">
+              <van-radio name="{{1}}">是</van-radio>
+              <van-radio name="{{2}}">否</van-radio>
+            </view>
+          </van-radio-group>
+        </my-form-item>
+      </wux-field>
+      <wux-field name="hagueCertification" initialValue="{{''}}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            一同申请海牙认证
+          </view>
+          <van-radio-group value="{{ form.hagueCertification }}" bind:change="onChange1" >
+            <view class="form_radio">
+              <van-radio name="{{1}}">是</van-radio>
+              <van-radio name="{{2}}">否</van-radio>
+            </view>
+          </van-radio-group>
+        </my-form-item>
+      </wux-field>
+      <wux-field name="phone" initialValue="{{''}}" rules="{{ [{ required: true },{validator:'checkPhone'} ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            联系电话
+          </view>
           <wux-input maxlength="11" placeholder="请输入手机号" />
         </my-form-item>
       </wux-field>
+      <wux-field name="person" initialValue="{{''}}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            联系人
+          </view>
+          <wux-input maxlength="11" placeholder="请输入联系人" />
+        </my-form-item>
+      </wux-field>
     </wux-form>
-  </view>
+    <view class="label">
+      附图(非必填)
+    </view>
+    <view class="upload" bind:tap="uploadFile">
+      <text class="iconfont myIconshangchuan"></text>
+    </view>
+    <view class="label">
+      备注
+    </view>
+    <view class="value">
+      <wux-textarea value="{{ form.value }}" bind:change="changRemark"/>
+    </view>
+    <view class="foot">
+      <view></view>
+      <view class="foot_label">
+        一键查新
+      </view>
+      <view>
+        <view class="foot_btn" bind:tap="submit">
+          提交工单
+        </view>
+        <view class="foot_label2">
+          预估费用:1.5W
+        </view>
+      </view>
+    </view>
+  </scroll-view>
 </view>

+ 46 - 3
pages/form/application/application.wxss

@@ -2,9 +2,52 @@
 .application{
   padding: 0 25rpx;
   height: calc(100% - 150rpx);
+  background-color: #ffffff;
 }
-.form_label .left{
-  font-size: 35rpx;
-  background-color: var(--themeColor) !important;
+.form{
+  height: 1050rpx;
+  margin-top: 10rpx;
+}
+.label{
+  background-color: var(--themeColor);
+  text-align: center;
+  line-height: 60rpx;
+  color: #ffffff;
+  border-radius: 10rpx;
+}
+.upload{
+  margin: 15rpx 0;
+  border: 1px solid var(--themeColor);
+  border-radius: 15rpx;
+  text-align: center;
+  line-height: 120rpx;
+}
+.value{
+  padding: 15rpx;
+  margin: 15rpx 0;
+  border: 1px solid var(--themeColor);
+  border-radius: 15rpx;
+  min-height: 120rpx;
+}
+.foot{
+  margin: 20rpx 0;
+  display: flex;
+  /* flex-direction: row-reverse; */
+  justify-content: space-between;
+  align-items: center;
+}
+.foot_label{
+  color: #4095e5;
+}
+.foot_label2{
+  color: red;
+  font-size: 25rpx;
+}
+.foot_btn{
+  width: 180rpx;
+  padding: 15rpx 25rpx;
+  background-color: var(--themeColor);
+  color: #ffffff;
+  text-align: center;
   border-radius: 15rpx;
 }

+ 122 - 1
pages/form/rightsProtection/rightsProtection.js

@@ -1,11 +1,42 @@
 // pages/form/rightsProtection/rightsProtection.js
+const upload = require("../../../utils/upload")
+import { $wuxForm} from '../../../miniprogram_npm/wux-weapp/index'
 Page({
 
   /**
    * 页面的初始数据
    */
   data: {
-
+    validateMessages: {
+      required: '%s 字段为必填',
+    },
+    form:{
+      type:0,
+      infringementType:0,
+      infringementClassify:0,
+      havePatentNo:1,
+      complaintType:1,
+    },
+    labelWidth:350,
+    countrys:[
+      { text: '美国站', value: 0 },
+      { text: '日本站', value: 1 },
+      { text: '德国站', value: 2 },
+      { text: '英国站', value: 3 },
+    ],
+    typeOptions:[
+      { text: '发明专利', value: 0 },
+      { text: '外观设计', value: 1 },
+      { text: '实用新型', value: 2 },
+      { text: '商标', value: 3 },
+      { text: '版权', value: 4 },
+    ],
+    typeOptions:[
+      { text: '产品侵权', value: 0 },
+      { text: '图片侵权', value: 1 },
+      { text: '背景侵权', value: 2 },
+      { text: '文字侵权', value: 3 },
+    ],
   },
 
   /**
@@ -29,6 +60,96 @@ Page({
 
   },
 
+
+  /**
+   * 页面方法集合
+   */
+  //表单栏位值发生变化时
+  onValuesChange(e) {
+    console.log(e)
+    const { changedValues, allValues } = e.detail
+    // this.setValues(changedValues)
+    Object.keys(changedValues).forEach((field) => {
+      this.setData({
+          ['form.'+field]: changedValues[field],
+      })
+    })
+    console.log('onValuesChange \n', changedValues, allValues)
+  },
+  //手机号校验
+  checkPhone(rule, value){
+    if(!value){
+      return Promise.reject(new Error('手机号不能为空!'))
+    }
+    const isTel = (value) => /^1[34578]\d{9}$/.test(value)
+    if(!isTel(value)){
+      return Promise.reject(new Error('手机号输入错误!'))
+    }
+    return Promise.resolve()
+  },
+  //上传文件
+  uploadFile(){
+    const that = this;  
+    wx.chooseMessageFile({  
+      count: 1, // 默认9,表示一次最多可以选择的文件个数  
+      type: 'file', // 可以指定是文件  
+      success(res) {  
+        // 返回选定文件的本地文件路径列表,tempFilePath可以作为文件上传的标识  
+        const tempFilePaths = res.tempFilePaths[0];  
+        upload(tempFilePaths).then(res=>{
+          console.log(res)
+        })
+      }  
+    }); 
+  },
+  //输入备注
+  changRemark(e){
+    this.setData(
+      {
+        ["form.remark"]:e.detail.value
+      }
+    )
+  },
+  //修改商品是否原创
+  onChange2(e){
+    this.setData(
+      {
+        ["form.isOriginal"]:e.detail.value
+      }
+    )
+  },
+  //修改被投诉类型
+  onChange1(e){
+    this.setData(
+      {
+        ["form.complaintType"]:e.detail.value
+      }
+    )
+  },
+  //修改被投诉类型
+  onChange3(e){
+    this.setData(
+      {
+        ["form.haveNegotiated"]:e.detail.value
+      }
+    )
+  },
+  //提交工单
+  submit(){
+    const { validateFields } = $wuxForm()
+    wx.navigateTo({
+      url: '/pages/successReminder/successReminder?id=2',
+    })
+    validateFields((err, values) => {
+      console.log(err)
+        if (!err) {
+
+        }
+    })
+  },
+
+
+
   /**
    * 生命周期函数--监听页面隐藏
    */

+ 14 - 1
pages/form/rightsProtection/rightsProtection.json

@@ -1,3 +1,16 @@
 {
-  "usingComponents": {}
+  "navigationStyle": "custom",
+  "usingComponents": {
+    "wux-form": "/miniprogram_npm/wux-weapp/form",
+    "wux-field":"/miniprogram_npm/wux-weapp/field/index",
+    "wux-input":"/miniprogram_npm/wux-weapp/input/index",
+    "navBar": "/myComponents/navBar/navBar",
+    "van-dropdown-menu": "/miniprogram_npm/@vant/weapp/dropdown-menu/index",
+    "van-dropdown-item": "/miniprogram_npm/@vant/weapp/dropdown-item/index",
+    "my-form-item":"/myComponents/formItem/formItem",
+    "van-radio": "/miniprogram_npm/@vant/weapp/radio/index",
+    "van-radio-group": "/miniprogram_npm/@vant/weapp/radio-group/index",
+    "wux-upload": "/miniprogram_npm/wux-weapp/upload/index",
+    "wux-textarea": "/miniprogram_npm/wux-weapp/textarea/index"
+  }
 }

+ 116 - 1
pages/form/rightsProtection/rightsProtection.wxml

@@ -1,2 +1,117 @@
 <!--pages/form/rightsProtection/rightsProtection.wxml 维权-->
-<text>pages/form/rightsProtection/rightsProtection.wxml</text>
+<navBar></navBar>
+<van-notify id="van-notify" />
+<view class="appeal">
+  <view class="headTitle">
+    知识产权维权
+  </view>
+  <scroll-view scroll-y class="form">
+    <wux-form
+      id="wux-form"
+      layout="none"
+      validateMessages="{{ validateMessages }}"
+      bind:change="onValuesChange"
+    >
+      <wux-field name="ADIN" initialValue="{{''}}" rules="{{ [{ required: true } ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            <van-dropdown-menu custom-class="form_dropdown1">
+              <van-dropdown-item value="{{ form.type }}" options="{{ countrys }}" />
+            </van-dropdown-menu>
+          </view>
+          <wux-input  placeholder="请输入投诉方ADIN号" />
+        </my-form-item>
+      </wux-field>
+      <wux-field name="infringementType" initialValue="{{''}}" rules="{{ [{ required: true } ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            侵权类型
+          </view>
+          <van-dropdown-menu custom-class="form_dropdown">
+            <van-dropdown-item value="{{ form.infringementType }}" options="{{ typeOptions }}" />
+          </van-dropdown-menu>
+        </my-form-item>
+      </wux-field>
+      <wux-field name="infringementClassify" initialValue="{{''}}" rules="{{ [{ required: true } ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            侵权分类
+          </view>
+          <van-dropdown-menu custom-class="form_dropdown">
+            <van-dropdown-item value="{{ form.infringementClassify }}" options="{{ typeOptions2 }}" />
+          </van-dropdown-menu>
+        </my-form-item>
+      </wux-field>
+      <wux-field name="havePatentNo" initialValue="{{''}}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            是否拥有专利号
+          </view>
+          <van-radio-group value="{{ form.havePatentNo }}" bind:change="onChange2" >
+            <view class="form_radio">
+              <van-radio name="{{1}}">是</van-radio>
+              <van-radio name="{{2}}">否</van-radio>
+            </view>
+          </van-radio-group>
+        </my-form-item>
+      </wux-field>
+      <wux-field name="patentNo" initialValue="{{''}}" >
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            专利号
+          </view>
+          <wux-input maxlength="11" placeholder="请输入您的专利号" />
+        </my-form-item>
+      </wux-field>
+
+
+      <wux-field name="question" initialValue="{{''}}">
+        <view class="label">
+          哪一项最能描述您的问题?
+        </view>
+        <view>
+          <van-radio-group value="{{ form.havePatentNo }}" bind:change="onChange2" >
+              <van-radio name="{{1}}">商品详细页上使用了未经授权的图片</van-radio>
+              <van-radio name="{{2}}">实际商品或其包装包含非盗版的未授权的内容</van-radio>
+              <van-radio name="{{3}}">商品详情页面上使用了未经授权的文本</van-radio>
+              <van-radio name="{{4}}">商品或其包装为盗版(全盘复制受版权保护的商品)</van-radio>
+          </van-radio-group>
+        </view>
+      </wux-field>
+      <wux-field name="url" initialValue="{{''}}" rules="{{ [{ required: true },{type:'url'} ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            侵权店铺的链接
+          </view>
+          <wux-input maxlength="11" placeholder="请输入侵权店铺的链接" />
+        </my-form-item>
+      </wux-field>
+
+      <wux-field name="phone" initialValue="{{''}}" rules="{{ [{ required: true },{validator:'checkPhone'} ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            联系电话
+          </view>
+          <wux-input maxlength="11" placeholder="请输入手机号" />
+        </my-form-item>
+      </wux-field>
+      <wux-field name="person" initialValue="{{''}}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            联系人
+          </view>
+          <wux-input maxlength="11" placeholder="请输入联系人" />
+        </my-form-item>
+      </wux-field>
+    </wux-form>
+    <view class="label">
+      请提供更多信息,以便于我们了解您的问题
+    </view>
+    <view class="value">
+      <wux-textarea value="{{ form.value }}" placeholder="请输入版权作品的链接或者注册编号" bind:change="changRemark"/>
+    </view>
+    <view class="foot" bind:tap="submit">
+      提交
+    </view>
+  </scroll-view>
+</view>

+ 49 - 1
pages/form/rightsProtection/rightsProtection.wxss

@@ -1 +1,49 @@
-/* pages/form/rightsProtection/rightsProtection.wxss */
+/* pages/form/rightsProtection/rightsProtection.wxss */
+.appeal{
+  padding: 0 25rpx;
+  height: calc(100% - 150rpx);
+  background-color: #ffffff;
+}
+.form_dropdown1{
+  height: 50rpx !important;
+  box-shadow:none !important;
+  background-color: var(--themeColor) !important;
+}
+.form_dropdown1>.van-dropdown-menu__item{
+  justify-content:flex-start !important;
+}
+.form_dropdown1 .van-dropdown-menu__title{
+  color: #ffffff !important;
+}
+.form{
+  height: 1050rpx;
+  margin-top: 10rpx;
+}
+.label{
+  background-color: var(--themeColor);
+  text-align: center;
+  line-height: 60rpx;
+  color: #ffffff;
+  border-radius: 10rpx;
+}
+.upload{
+  margin: 15rpx 0;
+  border: 1px solid var(--themeColor);
+  border-radius: 15rpx;
+  text-align: center;
+  line-height: 120rpx;
+}
+.value{
+  padding: 15rpx;
+  margin: 15rpx 0;
+  border: 1px solid var(--themeColor);
+  border-radius: 15rpx;
+  min-height: 120rpx;
+}
+.foot{
+  padding: 15rpx 25rpx;
+  background-color: var(--themeColor);
+  color: #ffffff;
+  text-align: center;
+  border-radius: 15rpx;
+}

+ 99 - 1
pages/form/riskAssessment/riskAssessment.js

@@ -1,11 +1,27 @@
 // pages/form/riskAssessment/riskAssessment.js
+// pages/form/application/application.js
+const upload = require("../../../utils/upload")
+import { $wuxForm} from '../../../miniprogram_npm/wux-weapp/index'
 Page({
 
   /**
    * 页面的初始数据
    */
   data: {
-
+    validateMessages: {
+      required: '%s 字段为必填',
+    },
+    form:{
+      unableExport:1
+    },
+    labelWidth:350,
+    typeOptions:[
+      { text: '发明专利', value: 0 },
+      { text: '外观设计', value: 1 },
+      { text: '实用新型', value: 2 },
+      { text: '商标', value: 3 },
+      { text: '版权', value: 4 },
+    ]
   },
 
   /**
@@ -29,6 +45,88 @@ Page({
 
   },
 
+
+  /**
+   * 页面方法集合
+   */
+  //表单栏位值发生变化时
+  onValuesChange(e) {
+    console.log(e)
+    const { changedValues, allValues } = e.detail
+    // this.setValues(changedValues)
+    Object.keys(changedValues).forEach((field) => {
+      this.setData({
+          ['form.'+field]: changedValues[field],
+      })
+    })
+    console.log('onValuesChange \n', changedValues, allValues)
+  },
+  //手机号校验
+  checkPhone(rule, value){
+    if(!value){
+      return Promise.reject(new Error('手机号不能为空!'))
+    }
+    const isTel = (value) => /^1[34578]\d{9}$/.test(value)
+    if(!isTel(value)){
+      return Promise.reject(new Error('手机号输入错误!'))
+    }
+    return Promise.resolve()
+  },
+  //上传文件
+  uploadFile(){
+    const that = this;  
+    wx.chooseMessageFile({  
+      count: 1, // 默认9,表示一次最多可以选择的文件个数  
+      type: 'file', // 可以指定是文件  
+      success(res) {  
+        // 返回选定文件的本地文件路径列表,tempFilePath可以作为文件上传的标识  
+        const tempFilePaths = res.tempFilePaths[0];  
+        upload(tempFilePaths).then(res=>{
+          console.log(res)
+        })
+      }  
+    }); 
+  },
+  //输入备注
+  changRemark(e){
+    this.setData(
+      {
+        ["form.remark"]:e.detail.value
+      }
+    )
+  },
+  //修改是否海外申请
+  onChange2(e){
+    this.setData(
+      {
+        ["form.isApplyOverseas"]:e.detail.value
+      }
+    )
+  },
+  //修改一同申请海牙认证
+  onChange1(e){
+    this.setData(
+      {
+        ["form.hagueCertification"]:e.detail.value
+      }
+    )
+  },
+  //提交工单
+  submit(){
+    const { validateFields } = $wuxForm()
+    wx.navigateTo({
+      url: '/pages/successReminder/successReminder?id=4',
+    })
+    validateFields((err, values) => {
+      console.log(err)
+        if (!err) {
+
+        }
+    })
+  },
+
+
+
   /**
    * 生命周期函数--监听页面隐藏
    */

+ 14 - 1
pages/form/riskAssessment/riskAssessment.json

@@ -1,3 +1,16 @@
 {
-  "usingComponents": {}
+  "navigationStyle": "custom",
+  "usingComponents": {
+    "wux-form": "/miniprogram_npm/wux-weapp/form",
+    "wux-field":"/miniprogram_npm/wux-weapp/field/index",
+    "wux-input":"/miniprogram_npm/wux-weapp/input/index",
+    "navBar": "/myComponents/navBar/navBar",
+    "van-dropdown-menu": "/miniprogram_npm/@vant/weapp/dropdown-menu/index",
+    "van-dropdown-item": "/miniprogram_npm/@vant/weapp/dropdown-item/index",
+    "my-form-item":"/myComponents/formItem/formItem",
+    "van-radio": "/miniprogram_npm/@vant/weapp/radio/index",
+    "van-radio-group": "/miniprogram_npm/@vant/weapp/radio-group/index",
+    "wux-upload": "/miniprogram_npm/wux-weapp/upload/index",
+    "wux-textarea": "/miniprogram_npm/wux-weapp/textarea/index"
+  }
 }

+ 76 - 1
pages/form/riskAssessment/riskAssessment.wxml

@@ -1,2 +1,77 @@
 <!--pages/form/riskAssessment/riskAssessment.wxml 查风险-->
-<text>pages/form/riskAssessment/riskAssessment.wxml</text>
+<navBar></navBar>
+<van-notify id="van-notify" />
+<view class="application">
+  <view class="headTitle">
+    填写工单
+  </view>
+  <scroll-view scroll-y class="form">
+    <wux-form
+      id="wux-form"
+      layout="none"
+      validateMessages="{{ validateMessages }}"
+      bind:change="onValuesChange"
+    >
+      <wux-field name="companyName" initialValue="{{''}}" rules="{{ [{ required: true } ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            公司名称
+          </view>
+          <wux-input  placeholder="请输入公司名称" />
+        </my-form-item>
+      </wux-field>
+      <wux-field name="person" initialValue="{{''}}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            联系人
+          </view>
+          <wux-input maxlength="11" placeholder="请输入联系人" />
+        </my-form-item>
+      </wux-field>
+      <wux-field name="phone" initialValue="{{''}}" rules="{{ [{ required: true },{validator:'checkPhone'} ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            联系电话
+          </view>
+          <wux-input maxlength="11" placeholder="请输入手机号" />
+        </my-form-item>
+      </wux-field>
+      <wux-field name="email" initialValue="{{''}}" rules="{{ [{ required: true },{type:'emain'} ] }}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            联系邮箱
+          </view>
+          <wux-input placeholder="请输入邮箱" />
+        </my-form-item>
+      </wux-field>
+      <wux-field name="unableExport" initialValue="{{''}}">
+        <my-form-item labelWidth="{{labelWidth}}" custom-class="form_label">
+          <view slot="label" >
+            专利无法导出
+          </view>
+          <van-radio-group value="{{ form.unableExport }}" bind:change="onChange2" >
+            <view class="form_radio">
+              <van-radio name="{{1}}">是</van-radio>
+              <van-radio name="{{2}}">否</van-radio>
+            </view>
+          </van-radio-group>
+        </my-form-item>
+      </wux-field>
+    </wux-form>
+    <view class="label">
+      附图(非必填)
+    </view>
+    <view class="upload" bind:tap="uploadFile">
+      <text class="iconfont myIconshangchuan"></text>
+    </view>
+    <view class="label">
+      请问您遇到什么问题了呢?
+    </view>
+    <view class="value">
+      <wux-textarea value="{{ form.value }}" bind:change="changRemark"/>
+    </view>
+    <view class="foot" bind:tap="submit">
+      提交
+    </view>
+  </scroll-view>
+</view>

+ 38 - 1
pages/form/riskAssessment/riskAssessment.wxss

@@ -1 +1,38 @@
-/* pages/form/riskAssessment/riskAssessment.wxss */
+/* pages/form/riskAssessment/riskAssessment.wxss */
+.application{
+  padding: 0 25rpx;
+  height: calc(100% - 150rpx);
+  background-color: #ffffff;
+}
+.form{
+  height: 1050rpx;
+  margin-top: 10rpx;
+}
+.label{
+  background-color: var(--themeColor);
+  text-align: center;
+  line-height: 60rpx;
+  color: #ffffff;
+  border-radius: 10rpx;
+}
+.upload{
+  margin: 15rpx 0;
+  border: 1px solid var(--themeColor);
+  border-radius: 15rpx;
+  text-align: center;
+  line-height: 120rpx;
+}
+.value{
+  padding: 15rpx;
+  margin: 15rpx 0;
+  border: 1px solid var(--themeColor);
+  border-radius: 15rpx;
+  min-height: 120rpx;
+}
+.foot{
+  padding: 15rpx 25rpx;
+  background-color: var(--themeColor);
+  color: #ffffff;
+  text-align: center;
+  border-radius: 15rpx;
+}

+ 35 - 32
pages/hotProduct/hotProduct.js

@@ -1,5 +1,7 @@
 // pages/hotProduct/hotProduct.js
 const api = require('../../api/index')
+
+import { $startWuxRefresher, $stopWuxRefresher,$stopWuxLoader} from '../../miniprogram_npm/wux-weapp/index'
 Page({
 
   /**
@@ -12,24 +14,16 @@ Page({
       current:1,
       size:10
     },
-    total:25
+    total:25,
+    loading:false,
+    scrollTop: 0,
   },
 
   /**
    * 生命周期函数--监听页面加载
    */
   onLoad(options) {
-    var params = {
-      current:1,
-      size:10
-    }
-    this.setData(
-      {
-        queryParams:params,
-        total:0
-      }
-    )
-    this.getProductList()
+    this.init()
   },
 
   /**
@@ -50,12 +44,37 @@ Page({
 /**
    * 页面功能实现的区域
    */
+  //初始化加载
+  init(){
+    var params = {
+      current:1,
+      size:10
+    }
+    this.setData(
+      {
+        queryParams:params,
+        total:0,
+        tableData:[]
+      }
+    )
+    this.getProductList()
+  },
+  //下拉
+  onPulling() {
+    console.log('onPulling')
+  },
+  //下拉刷新
+  onRefresh() {
+    console.log('onRefresh')
+    this.init()
+  },
+
   //获取爆款产品
   getProductList(){
     var params = this.data.queryParams
     api.queryHotProduct(params).then(res=>{
       if(res.code == 200){
-        if(res.data.data.length>10){
+        if(res.data.data.length>0){
           var data = this.data.tableData.concat(res.data.data)
           this.setData(
             {
@@ -63,24 +82,8 @@ Page({
               total:res.data.total
             }
           )
-        }else{
-          var data1 = []
-          for(var i = 1;i<=10;i++){
-            data1.push(
-              {
-                name:'产品'+i,
-                systemFileList:[]
-              }
-            )
-          }
-          var data = this.data.tableData.concat(data1)
-          this.setData(
-            {
-              tableData:data
-            }
-          )
         }
-        
+        $stopWuxRefresher()
       }
     })
     
@@ -126,14 +129,14 @@ Page({
    * 页面相关事件处理函数--监听用户下拉动作
    */
   onPullDownRefresh() {
-
+    console.log('下拉')
   },
 
   /**
    * 页面上拉触底事件的处理函数
    */
   onReachBottom() {
-
+    console.log('上拉')
   },
 
   /**

+ 9 - 2
pages/hotProduct/hotProduct.wxml

@@ -1,5 +1,11 @@
 <!--pages/hotProduct/hotProduct.wxml-->
 <van-notify id="van-notify" />
+<wux-refresher
+  id="wux-refresher"
+  bind:pulling="onPulling"
+  bind:refresh="onRefresh"
+  scrollTop="{{scrollTop}}"
+>
 <view class="hotProduct">
   <view class="search">
     <myInput value="{{keyword}}" placeholder="请输入产品相关关键词" bindchange="changeKeyword" bindsearch="search" bindclickInnerIcon="clickInnerIcon"></myInput>
@@ -19,6 +25,7 @@
     </view>
   </view>
   <scroll-view type="list" scroll-y class="main">
-    <myProduct tableData="{{tableData}}" total="{{total}}" bindloadMore="loadMore"></myProduct>
+    <myProduct tableData="{{tableData}}" total="{{total}}" loading="{{loading}}" bindloadMore="loadMore"></myProduct>
   </scroll-view>
-</view>
+</view>
+</wux-refresher>

+ 0 - 18
pages/logs/logs.js

@@ -1,18 +0,0 @@
-// logs.js
-const util = require('../../utils/util.js')
-
-Page({
-  data: {
-    logs: []
-  },
-  onLoad() {
-    this.setData({
-      logs: (wx.getStorageSync('logs') || []).map(log => {
-        return {
-          date: util.formatTime(new Date(log)),
-          timeStamp: log
-        }
-      })
-    })
-  }
-})

+ 0 - 5
pages/logs/logs.json

@@ -1,5 +0,0 @@
-{
-  "usingComponents": {
-    
-  }
-}

+ 0 - 6
pages/logs/logs.wxml

@@ -1,6 +0,0 @@
-<!--logs.wxml-->
-<scroll-view class="scrollarea" scroll-y type="list">
-  <block wx:for="{{logs}}" wx:key="timeStamp" wx:for-item="log">
-    <view class="log-item">{{index + 1}}. {{log.date}}</view>
-  </block>
-</scroll-view>

+ 0 - 16
pages/logs/logs.wxss

@@ -1,16 +0,0 @@
-page {
-  height: 100vh;
-  display: flex;
-  flex-direction: column;
-}
-.scrollarea {
-  flex: 1;
-  overflow-y: hidden;
-}
-.log-item {
-  margin-top: 20rpx;
-  text-align: center;
-}
-.log-item:last-child {
-  padding-bottom: env(safe-area-inset-bottom);
-}

+ 26 - 10
pages/monitor/monitor.js

@@ -1,5 +1,6 @@
 // pages/monitor/monitor.js
 const api = require('../../api/index')
+import { $startWuxRefresher, $stopWuxRefresher,$stopWuxLoader} from '../../miniprogram_npm/wux-weapp/index'
 Page({
 
   /**
@@ -18,16 +19,7 @@ Page({
    * 生命周期函数--监听页面加载
    */
   onLoad(options) {
-    this.setData(
-      {
-        queryParams:{
-          current:1,
-          size:10
-        },
-        total:0
-      }
-    )
-    this.getMyMonitor()
+    this.init()
   },
 
   /**
@@ -47,6 +39,30 @@ Page({
   /**
    * 页面功能
    */
+  //初始化加载
+  init(){
+    var params = {
+      current:1,
+      size:10
+    }
+    this.setData(
+      {
+        queryParams:params,
+        total:0,
+        tableData:[]
+      }
+    )
+    this.getMyMonitor()
+  },
+  //下拉
+  onPulling() {
+    console.log('onPulling')
+  },
+  //下拉刷新
+  onRefresh() {
+    console.log('onRefresh')
+    this.init()
+  },
   //获取关注的产品
   getMyMonitor(){},
   //加载更多

+ 10 - 2
pages/monitor/monitor.wxml

@@ -1,11 +1,19 @@
 <!--pages/monitor/monitor.wxml 监控-->
 <navBar></navBar>
 <van-notify id="van-notify" />
+<wux-refresher
+  id="wux-refresher"
+  bind:pulling="onPulling"
+  bind:refresh="onRefresh"
+  scrollTop="{{scrollTop}}"
+>
 <view class="monitor">
   <view class="head">
     <text>我的监控</text>
   </view>
-  <scroll-view type="list" scroll-y class="main">
+  <scroll-view wx:if="{{tableData.length>0}}" type="list" scroll-y class="main">
     <myProduct tableData="{{tableData}}" total="{{total}}" bindloadMore="loadMore"></myProduct>
   </scroll-view>
-</view>
+  <van-empty wx:else description="暂无数据" />
+</view>
+</wux-refresher>

+ 26 - 10
pages/myFollow/myFollow.js

@@ -1,5 +1,6 @@
 // pages/myFollow/myFollow.js
 const api = require('../../api/index')
+import { $startWuxRefresher, $stopWuxRefresher,$stopWuxLoader} from '../../miniprogram_npm/wux-weapp/index'
 Page({
 
   /**
@@ -45,16 +46,7 @@ Page({
    * 生命周期函数--监听页面加载
    */
   onLoad(options) {
-    this.setData(
-      {
-        queryParams:{
-          current:1,
-          size:10
-        },
-        total:0
-      }
-    )
-    this.getMyFollowProductList()
+    this.init()
   },
 
   /**
@@ -75,6 +67,30 @@ Page({
   /**
    * 页面功能
    */
+  //初始化加载
+  init(){
+    var params = {
+      current:1,
+      size:10
+    }
+    this.setData(
+      {
+        queryParams:params,
+        total:0,
+        tableData:[]
+      }
+    )
+    this.getMyFollowProductList()
+  },
+  //下拉
+  onPulling() {
+    console.log('onPulling')
+  },
+  //下拉刷新
+  onRefresh() {
+    console.log('onRefresh')
+    this.init()
+  },
   //获取关注的产品
   getMyFollowProductList(){},
   //加载更多

+ 10 - 2
pages/myFollow/myFollow.wxml

@@ -1,6 +1,12 @@
 <!--pages/myFollow/myFollow.wxml 我关注的-->
 <navBar></navBar>
 <van-notify id="van-notify" />
+<wux-refresher
+  id="wux-refresher"
+  bind:pulling="onPulling"
+  bind:refresh="onRefresh"
+  scrollTop="{{scrollTop}}"
+>
 <view class="myFollow">
   <view class="head">
     <text>我的关注</text>
@@ -13,7 +19,9 @@
       </van-checkbox>
     </van-checkbox-group>
   </view>
-  <scroll-view type="list" scroll-y class="main">
+  <scroll-view wx:if="{{tableData.length>0}}" type="list" scroll-y class="main">
     <myProduct tableData="{{tableData}}" total="{{total}}" bindloadMore="loadMore"></myProduct>
   </scroll-view>
-</view>
+  <van-empty wx:else description="暂无数据" />
+</view>
+</wux-refresher>

+ 28 - 10
pages/myWork/myWork.js

@@ -1,6 +1,7 @@
 // pages/myWork/myWork.js
 const api = require('../../api/index')
 const app = getApp()
+import { $startWuxRefresher, $stopWuxRefresher,$stopWuxLoader} from '../../miniprogram_npm/wux-weapp/index'
 Page({
 
   /**
@@ -13,6 +14,7 @@ Page({
       size:10
     },
     total:0,
+    loading:false,
     imgHttp:app.globalData.imgHttp
   },
 
@@ -20,16 +22,7 @@ Page({
    * 生命周期函数--监听页面加载
    */
   onLoad(options) {
-    this.setData(
-      {
-        queryParams:{
-          current:1,
-          size:10
-        },
-        total:0
-      }
-    )
-    this.getMyWork()
+    this.init()
   },
 
   /**
@@ -50,6 +43,31 @@ Page({
   /**
    * 页面功能
    */
+  //初始化加载
+  init(){
+    var params = {
+      current:1,
+      size:10
+    }
+    this.setData(
+      {
+        queryParams:params,
+        total:0,
+        tableData:[]
+      }
+    )
+    this.getMyWork()
+  },
+  //下拉
+  onPulling() {
+    console.log('onPulling')
+  },
+  //下拉刷新
+  onRefresh() {
+    console.log('onRefresh')
+    this.init()
+  },
+
   //查看图片
   previewImage(e) {
     const { current,imglist } = e.currentTarget.dataset

+ 12 - 3
pages/myWork/myWork.wxml

@@ -1,11 +1,17 @@
 <!--pages/myWork/myWork.wxml 我的工单-->
 <navBar></navBar>
 <van-notify id="van-notify" />
+<wux-refresher
+  id="wux-refresher"
+  bind:pulling="onPulling"
+  bind:refresh="onRefresh"
+  scrollTop="{{scrollTop}}"
+>
 <view class="myWork">
   <view class="head">
     <text>检索记录</text>
   </view>
-  <scroll-view type="list" scroll-y class="main">
+  <scroll-view wx:if="{{tableData.length>0}}" type="list" scroll-y class="main">
     <block wx:for="{{tableData}}" wx:key="index">
       <myCard>
         <view slot="head_left">
@@ -21,7 +27,10 @@
     </block>
     <view class="loadData" wx:if="{{total && tableData.length>0}}">
       <view wx:if="{{total>tableData.length}}" bind:tap="loadMore">加载更多</view>
-      <view wx:else>没有更多了</view>
+      <wux-spin wux-class="spin" size="small" wx:elif="{{loading}}"/>
+      <view wx:elif="total>10">没有更多了</view>
     </view>
   </scroll-view>
-</view>
+  <van-empty wx:else description="暂无数据" />
+</view>
+</wux-refresher>

+ 27 - 1
pages/riskAssessment/riskAssessment.js

@@ -1,5 +1,6 @@
 // pages/riskAssessment/riskAssessment.js
 const api = require('../../api/index')
+import { $startWuxRefresher, $stopWuxRefresher,$stopWuxLoader} from '../../miniprogram_npm/wux-weapp/index'
 Page({
 
   /**
@@ -14,7 +15,7 @@ Page({
    * 生命周期函数--监听页面加载
    */
   onLoad(options) {
-    this.getProductList()
+    this.init()
   },
 
   /**
@@ -34,6 +35,30 @@ Page({
   /**
    * 页面功能实现的区域
    */
+  //初始化加载
+  init(){
+    var params = {
+      current:1,
+      size:10
+    }
+    this.setData(
+      {
+        queryParams:params,
+        total:0,
+        tableData:[]
+      }
+    )
+    this.getProductList()
+  },
+  //下拉
+  onPulling() {
+    console.log('onPulling')
+  },
+  //下拉刷新
+  onRefresh() {
+    console.log('onRefresh')
+    this.init()
+  },
   //获取爆款产品
   getProductList(){
     var params = {
@@ -47,6 +72,7 @@ Page({
             tableData:res.data.data
           }
         )
+        $stopWuxRefresher()
       }
     })
     

+ 8 - 1
pages/riskAssessment/riskAssessment.wxml

@@ -1,6 +1,12 @@
 <!--pages/riskAssessment/riskAssessment.wxml-->
 <navBar backType="editLaw"></navBar>
 <van-notify id="van-notify" />
+<wux-refresher
+  id="wux-refresher"
+  bind:pulling="onPulling"
+  bind:refresh="onRefresh"
+  scrollTop="{{scrollTop}}"
+>
 <scroll-view class="appscrollarea" scroll-y >
 <view class="padding_50 content">
   <view class="head">
@@ -15,4 +21,5 @@
     <myProduct tableData="{{tableData}}"></myProduct>
   </view>
 </view>
-</scroll-view>
+</scroll-view>
+</wux-refresher>

+ 27 - 10
pages/searchRecords/searchRecords.js

@@ -1,6 +1,7 @@
 // pages/searchRecords/searchRecords.js
 const api = require('../../api/index')
 const app = getApp()
+import { $startWuxRefresher, $stopWuxRefresher,$stopWuxLoader} from '../../miniprogram_npm/wux-weapp/index'
 Page({
 
   /**
@@ -13,6 +14,7 @@ Page({
       size:10
     },
     total:0,
+    loading:false,
     imgHttp:app.globalData.imgHttp
   },
 
@@ -20,16 +22,7 @@ Page({
    * 生命周期函数--监听页面加载
    */
   onLoad(options) {
-    this.setData(
-      {
-        queryParams:{
-          current:1,
-          size:10
-        },
-        total:0
-      }
-    )
-    this.getSearchRecords()
+    this.init()
   },
 
   /**
@@ -50,6 +43,30 @@ Page({
   /**
    * 页面功能
    */
+  //初始化加载
+  init(){
+    var params = {
+      current:1,
+      size:10
+    }
+    this.setData(
+      {
+        queryParams:params,
+        total:0,
+        tableData:[]
+      }
+    )
+    this.getSearchRecords()
+  },
+  //下拉
+  onPulling() {
+    console.log('onPulling')
+  },
+  //下拉刷新
+  onRefresh() {
+    console.log('onRefresh')
+    this.init()
+  },
   //查看图片
   previewImage(e) {
     const { current,imglist } = e.currentTarget.dataset

+ 12 - 3
pages/searchRecords/searchRecords.wxml

@@ -1,11 +1,17 @@
 <!--pages/searchRecords/searchRecords.wxml 检索记录-->
 <navBar></navBar>
 <van-notify id="van-notify" />
+<wux-refresher
+  id="wux-refresher"
+  bind:pulling="onPulling"
+  bind:refresh="onRefresh"
+  scrollTop="{{scrollTop}}"
+>
 <view class="searchRecords">
   <view class="head">
     <text>检索记录</text>
   </view>
-  <scroll-view type="list" scroll-y class="main">
+  <scroll-view wx:if="{{tableData.length>0}}" type="list" scroll-y class="main">
     <block wx:for="{{tableData}}" wx:key="index">
       <myCard>
         <view slot="head_left">
@@ -28,7 +34,10 @@
     </block>
     <view class="loadData" wx:if="{{total && tableData.length>0}}">
       <view wx:if="{{total>tableData.length}}" bind:tap="loadMore">加载更多</view>
-      <view wx:else>没有更多了</view>
+      <wux-spin wux-class="spin" size="small" wx:elif="{{loading}}"/>
+      <view wx:elif="{{total>10}}">没有更多了</view>
     </view>
   </scroll-view>
-</view>
+  <van-empty wx:else description="暂无数据" />
+</view>
+</wux-refresher>

+ 66 - 0
pages/searchResults/searchResults.js

@@ -0,0 +1,66 @@
+// pages/searchResults/searchResults.js
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 3 - 0
pages/searchResults/searchResults.json

@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}

+ 4 - 0
pages/searchResults/searchResults.wxml

@@ -0,0 +1,4 @@
+<!--pages/searchResults/searchResults.wxml-->
+<view>
+  <view></view>
+</view>

+ 1 - 0
pages/searchResults/searchResults.wxss

@@ -0,0 +1 @@
+/* pages/searchResults/searchResults.wxss */

+ 116 - 0
pages/successReminder/successReminder.js

@@ -0,0 +1,116 @@
+// pages/successReminder/successReminder.js
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    description:'为保证申诉顺利性,请先下架被投诉产品链接',
+    type:'申诉'
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    const types = [
+      {
+        id:1,
+        type:'申诉',
+        description:'为保证申诉顺利性,请先下架被投诉产品链接'
+      },
+      {
+        id:2,
+        type:'维权',
+        description:'为保证您的知识产品,请继续留意侵权方向'
+      },
+      {
+        id:3,
+        type:'',
+        description:''
+      },
+      {
+        id:4,
+        type:'',
+        description:''
+      },
+    ]
+    console.log(options)
+    if(options.id){
+      var obj = types.find(item=>{
+        return item.id == options.id
+      })
+      if(obj){
+        this.setData(
+          {
+            description:obj.description,
+            type:obj.type
+          }
+        )
+      }
+    }
+    if(options.type){
+      this.setData(
+        {
+          type:options.type
+        }
+      )
+    }
+    if(options.description){
+      this.setData(
+        {
+          description:options.description
+        }
+      )
+    }
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage() {
+
+  }
+})

+ 4 - 0
pages/successReminder/successReminder.json

@@ -0,0 +1,4 @@
+{
+  "navigationStyle": "custom",
+  "usingComponents": {}
+}

+ 14 - 0
pages/successReminder/successReminder.wxml

@@ -0,0 +1,14 @@
+<!--pages/successReminder/successReminder.wxml-->
+<navBar></navBar>
+<view>
+  <view class="content">
+    您的{{type}}工单已提交成功,工作人员会在48小时内通过邮箱或电话联系您,请注意收听
+  </view>
+  <view wx:if="description" class="description">
+    注:{{description}}
+  </view>
+
+  <view class="foot">
+    感谢威世博知识产权事务所提供的技术支持
+  </view>
+</view>

+ 20 - 0
pages/successReminder/successReminder.wxss

@@ -0,0 +1,20 @@
+/* pages/successReminder/successReminder.wxss */
+
+.content{
+  padding:20rpx 20%;
+  font-weight: bolder;
+  line-height: 2rem;
+  text-align: center;
+}
+
+.description{
+  color: red;
+  font-size: 30rpx;
+  padding: 25rpx;
+}
+
+.foot{
+  font-size: 25rpx;
+  text-align: end;
+  padding: 40rpx;
+}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 6 - 2
static/iconfont/iconfont.wxss


+ 1 - 1
utils/request.js

@@ -5,7 +5,7 @@ import Notify from '../miniprogram_npm/@vant/weapp/notify/notify';
 
 // 配置项  
 const config = {  
-  baseURL: 'http://192.168.1.13:8901', // 基础URL  
+  baseURL: 'http://192.168.1.6:8901', // 基础URL  
   timeout: 30000, // 超时时间(单位ms)  
   header: {  
     'content-type': 'application/json', // 默认请求头  

+ 59 - 0
utils/upload.js

@@ -0,0 +1,59 @@
+// 配置项  
+const config = {  
+  baseURL: 'http://192.168.1.6:8801', // 基础URL  
+  timeout: 30000, // 超时时间(单位ms)  
+  header: {  
+    'content-type': 'application/json', // 默认请求头  
+    // 其他全局请求头...  
+  },  
+  // 其他全局配置...  
+};  
+// 封装请求方法  
+function upload(url="/fileManager/uploadNormalFile", path = '', header = {},formData={}) {  
+  return new Promise((resolve, reject) => {  
+
+    wx.uploadFile({  
+      url: config.baseURL + url, //仅为示例,非真实的接口地址
+      filePath: path,
+      name: 'file',
+      formData: formData,  
+      header: {  
+        ...config.header,  
+        ...header,  
+      },  
+      timeout: config.timeout,  
+      success: function(res){  
+        // 根据业务逻辑处理成功响应  
+        if (res.data && res.data.code === 200) { // 假设服务器返回code为200表示成功 
+          resolve(res.data);  
+        } else {  
+          // wx.showToast({
+          //   title: '请求失败',
+          //   icon: 'error',
+          //   duration: 2000
+          // })
+          Notify({ type: 'danger', message: '上传失败' });
+          reject(res.data.message || '未知错误');  
+        }  
+      },  
+      fail: function(error) { 
+        console.log(error) 
+        
+        // 处理请求失败 
+        // wx.showToast({
+        //   title: '请求失败',
+        //   icon: 'error',
+        //   duration: 2000
+        // })
+        Notify({ type: 'danger', message: '上传失败' });
+        reject(error);  
+      },  
+    });  
+  });  
+}  
+  
+// 导出请求方法  
+module.exports = {  
+  upload: ( path,formData,url, header) => upload(url, path, header,formData),  
+
+};