Kaynağa Gözat

定制项修改

xiaohaizhao 11 ay önce
ebeveyn
işleme
b9b8d7b9ef

+ 3 - 1
packageA/market/detail.js

@@ -320,6 +320,7 @@ Page({
 			}
 		//是否为定制项
 		if (detail.iscustomsize == 1) custom = this.selectComponent("#customMade").getResult(true);
+		console.log("custom",custom)
 		if (typeof custom == "boolean") return;
 		content.items = [Object.assign({
 			sa_orderitemsid: 0,
@@ -338,10 +339,11 @@ Page({
 			wx.showModal({
 				title: '提示',
 				content: res.msg == '成功' ? '订单创建成功!是否立即查看' : res.msg,
+				showCancel: res.msg == '成功',
 				complete: ({
 					confirm
 				}) => {
-					if (confirm) wx.navigateTo({
+					if (res.msg == '成功' && confirm) wx.navigateTo({
 						url: '/packageA/orderForm/detail?id=' + res.data.sa_orderid,
 					})
 				}

+ 40 - 47
pages/index/collect/modules/customMade/index.js

@@ -17,15 +17,13 @@ Component({
   },
   externalClasses: ["external-custom-box", "external-custom-label", "external-custom-stepper-box", "external-explain", "external-active", "external-custom-option"],
   data: {
-    list: [],
-    focus: false,
-    isSubmit: false
+    list: []
   },
   methods: {
     init(data, prefix = '') {
       return new Promise((resolve) => {
         getCustomItems(data, prefix).then(list => {
-          console.log("list",list)
+          console.log("list", list)
           this.setData({
             list
           });
@@ -45,58 +43,53 @@ Component({
       });
       this.getResult();
     },
-    onFocus(e) {
-      this.data.focus = true;
-    },
     getResult(isSubmit = false) {
-      if (isSubmit && this.data.focus) {
-        this.data.isSubmit = isSubmit;
-        return "wait"
-      } else {
-        let obj = {};
-        let breakOff = false;
-        this.data.list.filter(v => {
-          if (breakOff) return;
-          if (v.type == '自定义') {
-            if (!v.value) v.value = 0;
-            if (v.value < v.min) v.value = v.min;
-          }
-          obj[v.key] = v.value || '';
-          if (isSubmit && !obj[v.key]) {
-            wx.showToast({
-              title: `请完成定制"${v.label}"选项`,
-              icon: "none"
-            })
-            breakOff = true;
-          }
-        })
-        this.triggerEvent("onChange", breakOff ? false : obj)
-        this.data.isSubmit = false;
-        return breakOff ? false : obj
-      }
+      let obj = {};
+      let breakOff = false;
+      this.data.list.filter(v => {
+        if (breakOff) return;
+        if (v.type == '自定义') {
+          if (!v.value) v.value = 0;
+        }
+        obj[v.key] = v.value || '';
+        if (isSubmit && !obj[v.key]) {
+          wx.showToast({
+            title: `请完成定制"${v.label}"选项`,
+            icon: "none"
+          })
+          breakOff = true;
+        } else if (v.tips) {
+          wx.showToast({
+            title: v.tips,
+            icon: "none"
+          })
+          breakOff = true;
+        }
+      })
+      this.triggerEvent("onChange", breakOff ? false : obj)
+      return breakOff ? false : obj
     },
-    /* 定制步进器 */
-    changeStepper(e) {
+    valueChange(e) {
       const {
         index,
         item
       } = e.currentTarget.dataset;
-      if (!item.value) item.value = 0;
-      if (e.type == 'plus') {
-        item.value += 1
-      } else if (e.type == 'minus') {
-        item.value -= 1
-      } else {
-        item.value = (e.detail.value - 0).toFixed(item.decimalplaces);
-        this.data.focus = false;
-      }
-      item.value = item.value - 0;
-      if (item.value > item.max) item.value = item.max;
+      wx.hideToast()
+      item.tips = '';
+      item.value = (e.detail.value - 0).toFixed(item.decimalplaces);
+      if (item.value > item.max) item.tips = `自定义${item.label}超出可选范围!`;
       if (item.value < item.min) item.value = item.min;
+
+      // item.tips = `自定义${item.label}少于可选范围!`;
+
+      if (item.tips) wx.showToast({
+        title: item.tips,
+        icon: "none"
+      })
+
       this.setData({
         [`list[${index}]`]: item
       })
-      this.getResult(this.data.isSubmit);
-    },
+    }
   }
 })

+ 10 - 0
pages/index/collect/modules/customMade/index.scss

@@ -36,4 +36,14 @@
 		font-size: 22rpx;
 		color: #333;
 	}
+}
+
+.custom-input {
+	border: 1px solid rgb(209, 206, 206);
+	border-radius: 8rpx;
+	width: 200rpx;
+	margin-right: 10rpx;
+	box-sizing: border-box;
+	padding: 0 6rpx;
+	font-size: 24rpx;
 }

+ 4 - 2
pages/index/collect/modules/customMade/index.wxml

@@ -6,14 +6,16 @@
 	<view class="custom-label external-custom-label">
 		{{item.label}}:
 	</view>
-	<!-- 可选项 -->
 	<block wx:if="{{item.type=='可选'}}">
 		<navigator url="#" class="custom-option {{it.num == item.value?'active external-active':''}} external-custom-option" data-value="{{it.num}}" data-index="{{index}}" wx:for="{{item.rowsdetail}}" wx:for-item="it" wx:for-index="i" wx:key="sa_sizeschemedetailid" bindtap="onOption">
 			{{it.num}}
 		</navigator>
 	</block>
 	<view class="stepper-box external-custom-stepper-box" wx:elif="{{item.type=='自定义'}}">
-		<van-stepper value="{{item.value||0}}" data-item="{{item}}" data-index="{{index}}" input-width="60px" min="{{item.min}}" max="{{item.max}}" decimal-length="{{ item.decimalplaces }}" integer="{{item.decimalplaces==0}}" bind:focus='onFocus' bind:plus='changeStepper' bind:blur='changeStepper' bind:minus='changeStepper' />
+	
+		<input class="custom-input" wx:if="{{item.decimalplaces==0}}" type='number' value="{{item.value}}" placeholder="0" data-item="{{item}}" data-index="{{index}}" bindinput='valueChange' />
+		<input class="custom-input" wx:else type='number' value="{{item.value}}" placeholder="0" type='digit' data-item="{{item}}" data-index="{{index}}" bindinput='valueChange' />
+
 		<view class="explain external-explain">{{item.min+'mm ~ '+ item.max}}mm,<text wx:if="{{item.decimalplaces}}">保留{{item.decimalplaces}}位小数</text><text wx:else>不保留小数</text></view>
 	</view>
 </view>