codeMan преди 3 години
родител
ревизия
9e3dde0f7f
променени са 4 файла, в които са добавени 41 реда и са изтрити 0 реда
  1. 14 0
      components/Yl_field/index.js
  2. 16 0
      components/Yl_field/index.wxml
  3. 4 0
      components/Yl_field/index.wxss
  4. 7 0
      project.private.config.json

+ 14 - 0
components/Yl_field/index.js

@@ -150,6 +150,20 @@ Component({
             });
             this.confirm();
         },
+        /* 单选 选择器改变 */
+        radioChange(e) {
+            let item = e.currentTarget.dataset.item,
+                index = this.data.form.findIndex(v => v.valueName == item.valueName);
+            this.setData({
+                [`form[${index}].value`]: e.detail,
+                [`form[${index}].error`]: false,
+            });
+            if(item.interrupt) this.triggerEvent("interrupt", {
+                data:this.data.form[index],
+                form: this.data.form
+            });
+            this.confirm();
+        },
         /* 提交 */
         submit() {
             let obj = {},

+ 16 - 0
components/Yl_field/index.wxml

@@ -44,6 +44,7 @@
                 <view wx:if="{{item.errMsg}}" class="error-tips">{{item.errMsg}}</view>
             </view>
         </view>
+        
         <!-- 时间选择器 -->
         <view class="picker" wx:elif="{{item.type=='time'}}">
             <view class="label">
@@ -100,6 +101,21 @@
                 <view wx:if="{{item.errMsg}}" class="error-tips">{{item.errMsg}}</view>
             </view>
         </view>
+        <!-- 单选 选择器 -->
+        <view class="picker" wx:elif="{{item.type=='radio'}}">
+            <view class="label">
+                <text class="need" style="color: {{item.required?'#EE0A24':'rgba(0,0,0,0)'}};">*</text>
+                <text class="text" style="color:{{item.disabled?'#C8C9CC':''}};">{{item.label}}</text>
+            </view>
+            <view style="position: relative;">
+                <view class="content">
+                    <van-radio-group value="{{ item.value }}" data-item="{{item}}" bind:change="radioChange">
+                        <van-radio wx:for="{{item.radioList}}" wx:for-item="it" wx:for-index="i" wx:key="it.name" icon-size="16" custom-class="radio {{i != 0 ? 'radio_margin_top' : '' }}" name="{{it.id}}">{{it.name}}</van-radio>
+                    </van-radio-group>
+                </view>
+                <view wx:if="{{item.errMsg}}" class="error-tips">{{item.errMsg}}</view>
+            </view>
+        </view>
         <!-- 异步类型选择 -->
         <view class="picker" wx:elif="{{item.type=='option'}}">
             <view class="label">

+ 4 - 0
components/Yl_field/index.wxss

@@ -48,4 +48,8 @@
 
 .radio{
     margin-right: 26rpx;
+}
+
+.radio_margin_top {
+    margin-top: 10px;
 }

+ 7 - 0
project.private.config.json

@@ -84,6 +84,13 @@
                     "query": "sa_contractid=87",
                     "launchMode": "default",
                     "scene": null
+                },
+                {
+                    "name": "aaa",
+                    "pathName": "packageA/contract/add/type4/index",
+                    "query": "",
+                    "launchMode": "default",
+                    "scene": null
                 }
             ]
         }