Browse Source

代码上传

zhangqi 1 year ago
parent
commit
e4c6072831

+ 1 - 1
src/DRP/HDrpManagement/calcMethod/detail/index.vue

@@ -2,7 +2,7 @@
   <div>
     <detail-template :headData="mainAreaData" :title="mainData.remarks" :tabs="['参数','商品']" :hideBorder="false" ownertable="sys_datafunction">
       <template #operation>
-        <Edit :data="mainData" @onSuccess="queryMainData" :disabled="!utils.hasPermission('update')"></Edit>
+        <Edit :data="mainData" @onSuccess="queryMainData" :disabled="!utils.hasPermission('update') || mainData.status == '启用'"></Edit>
         <customBtn
           :btnName="mainData.status == '启用' ? '停用' : '启用'"
           idName="2023121221131702"

+ 6 - 0
src/DRP/HDrpManagement/priceAdjustment/detail/modules/priceAssistant.vue

@@ -79,6 +79,12 @@ const reloadPrice = async ()=>{
     }
   })
   utils.message(res,'重置成功',()=>{
+    form.value = {
+      sa_itempriceadjustid:props.id,
+      manner:1,
+      cardinality:1,
+      coefficient:0
+    }
     emit('onSuccess')
     onClose()
   })

+ 146 - 2
src/DRP/SDrpManagement/salerPromotion/detail/modules/index.vue

@@ -18,14 +18,64 @@
         </template>
         <template v-if="data.column.dataIndex == 'amount'">
           <span class="color-red">¥&nbsp;{{utils.formatAmount(data.record.qty * data.record.gradeprice)}}</span>
+        </template> 
+        <template v-if="data.column.dataIndex === 'iscustom' && data.record.iscustomsize == 1">
+          <a-button type="link" @click="openCustom(data)" v-if="!data.record.isselect">定制信息</a-button>
+          <a-tag v-else closable @close="closeInfo(data.record)">{{ infoFun(data.record) }}</a-tag>
         </template>
       </template>
     </prod-temp>
     <div class="submit-panel">
       <a-button style="margin-left:10px" type="default" :disabled="selectProd.length === 0" @click="deleteProd">删除当前选中商品</a-button>
       <p><span style="margin-right:20px">当前选中了<b class="color-red">&nbsp;{{selectProd.length}}&nbsp;</b>条商品</span>合计:<b class="color-red sumAmount">{{utils.formatAmount(sum)}}</b></p>
-      <div class="submit-btn" @click="onSubmit">创建订单</div>
+      <div class="submit-btn" @click="checkProdsAllowed">创建订单</div>
     </div>
+    <a-modal v-model:open="open" wrapClassName="oder-modal" title="定制信息" @ok="handleOk" style="text-align:left" :closable="false">
+      <div class="mt-10" style="display: flex;justify-content: space-evenly;margin-top: 20px;">
+        <div style="display: flex;align-items: center;color: red;">
+          <span class="label">品号:{{prodData.record.itemno}}</span>
+          <span class="label overflow" style="max-width: 220px;margin-left: 10px;">品名:
+            <a-tooltip placement="topLeft" :title="prodData.record.itemname" arrow-point-at-center>
+              {{prodData.record.itemname}}
+            </a-tooltip>
+          </span>
+        </div>
+      </div>
+      <div class="mt-10" v-if="prodData.record.cheekschemeid > 0">
+        <span class="label">工艺</span>
+        <a-select v-model:value="prodData.record.customcheek" style="width: 400px;" placeholder="选择工艺">
+          <a-select-option v-for="item in prodData.record.cheekschemedetails" :key="item.sa_sizeschemedetailid" :value="item.num">{{item.num}}</a-select-option>
+        </a-select>
+      </div>
+      <div class="mt-10" v-if="prodData.record.colorschemeid > 0">
+        <span class="label">颜色</span>
+        <a-select v-model:value="prodData.record.customcolors" style="width: 400px" placeholder="选择颜色">
+          <a-select-option v-for="item in prodData.record.colorsschemedetails" :key="item.sa_sizeschemedetailid" :value="item.num">{{item.num}}</a-select-option>
+        </a-select>
+      </div>
+      <div class="mt-10" v-if="prodData.record.materialschemeid > 0">
+        <span class="label">选项</span>
+        <a-select v-model:value="prodData.record.custommaterial" style="width: 400px" placeholder="选择选项">
+          <a-select-option v-for="item in prodData.record.materialschemedetails" :key="item.sa_sizeschemedetailid" :value="item.num">{{item.num}}</a-select-option>
+        </a-select>
+      </div>
+      <div class="mt-10" v-if="prodData.record.spec == '自定义' || prodData.record.spec == 'custom'">
+        <span class="label">长度</span>
+        <a-select v-if="prodData.record.lengthschemedetails.length > 0" v-model:value="prodData.record.length" style="width: 400px" placeholder="选择长度">
+          <a-select-option v-for="item in prodData.record.lengthschemedetails" :key="item.sa_sizeschemedetailid" :value="item.num">{{item.num}}</a-select-option>
+        </a-select>
+        <a-input v-else style="width:400px;" v-model:value="prodData.record.length" :placeholder="`输入${prodData.record.lengthmin}到${prodData.record.lengthmax}毫米`" @blur="validInput(prodData.record,prodData.record.lengthmin,prodData.record.lengthmax,'length')">
+        </a-input>
+      </div>
+      <div class="mt-10" v-if="prodData.record.spec == '自定义' || prodData.record.spec == 'custom'">
+        <span class="label">宽度</span>
+        <a-select v-if="prodData.record.widthschemedetails.length > 0" v-model:value="prodData.record.width" style="width: 400px" placeholder="选择宽度">
+          <a-select-option v-for="item in prodData.record.widthschemedetails" :key="item.sa_sizeschemedetailid" :value="item.num">{{item.num}}</a-select-option>
+        </a-select>
+        <a-input v-else style="width:400px;" v-model:value="prodData.record.width" :placeholder="`输入${prodData.record.widthmin}到${prodData.record.widthmax}毫米`" @blur="validInput(prodData.record,prodData.record.widthmin,prodData.record.widthmax,'width')">
+        </a-input>
+      </div>
+    </a-modal>
   </div>
 </template>
 
@@ -97,8 +147,49 @@
       })
     },500)
   }
+  const checkProdsAllowed = async (val) =>{
+    const allowAdd = (e)=>{
+      if (e.iscustomsize == 1) {
+        if (!e.length || !e.width) {
+          message.error(e.itemname + '定制信息有误,请检查!')
+        } else if (e.cheekschemeid > 0 && !e.customcheek) {
+          message.error(e.itemname + '工艺定制信息有误,请检查!')
+        } else if (e.colorschemeid > 0 && !e.customcolors) {
+          message.error(e.itemname + '颜色定制信息有误,请检查!')
+        } else if (e.materialschemeid > 0 && !e.custommaterial) {
+          message.error(e.itemname + '选项定制信息有误,请检查!')
+        } else {
+          return {
+            sa_orderitemsid:0,
+            itemid:e.itemid,
+            qty:e.qty,
+            length:e.length ? e.length:0,
+            width:e.width ? e.width:0,
+            customcolors:e.customcolors ? e.customcolors:0,
+            customcheek:e.customcheek ? e.customcheek:0,
+            custommaterial:e.custommaterial ? e.custommaterial:0,
+            sa_brandid: e.sa_brandid,
+            sa_shoppingcartid:e.sa_shoppingcartid,
+          }
+        }
+      } else {
+        return {
+          sa_orderitemsid:0,
+          itemid:e.itemid,
+          qty:e.qty,
+          length:0,
+          width:0,
+          sa_brandid: e.sa_brandid,
+          sa_shoppingcartid:e.sa_shoppingcartid,
+        }
+      }
+    }
+    let data = selectProd.value.map(e=>{
+      return allowAdd(e)
+    })
+    data.filter(e=>e !== undefined).length > 0 ? onSubmit(data.filter(e=>e !== undefined)):''
+  }
   const onSubmit = ()=> {
-    if (fieldSame.value) return false
     if (selectProd.value.length == 0)  return message.error('未选择商品无法创建订单')
     Modal.confirm({
       title:'生成订单',
@@ -163,6 +254,52 @@
     })
     utils.message(res,'修改成功')
   }
+  const open = ref(false)
+  const prodData = ref({})
+  const openCustom = (data)=>{
+    open.value = true
+    prodData.value = data
+  }
+  const handleOk = ()=>{
+    prodData.value.record.isselect = true
+    prod.value.data.some((item)=>{
+      if (item.itemid == prodData.value.itemid) {
+        item = prodData.value
+      }
+    })
+    open.value = false
+    onSave(prodData.value.record)
+  }
+  const closeInfo = (data) => {
+    data.isselect = false
+    data.customcheek = null
+    data.customcolors = null
+    data.custommaterial = null
+    data.length = null
+    data.width = null
+  }
+  const infoFun = computed(() => {
+    return (data) => {
+      let customcheek = '',customcolors = '',custommaterial = '',length = '',width = ''
+      if (data.cheekschemeid > 0) customcheek = data.cheekschemedetails.filter(item => item.num == data.customcheek).length ? data.cheekschemedetails.filter(item => item.num == data.customcheek)[0].num : ''
+      if (data.colorschemeid > 0) customcolors = data.colorsschemedetails.filter(item => item.num == data.customcolors).length ? data.colorsschemedetails.filter(item => item.num == data.customcolors)[0].num : ''
+      if (data.materialschemeid > 0) custommaterial = data.materialschemedetails.filter(item => item.num == data.custommaterial).length ? data.materialschemedetails.filter(item => item.num == data.custommaterial)[0].num :''
+      if (data.spec == '自定义' || data.spec == 'custom') {
+        length = data.lengthschemedetails.filter(item => item.num == data.length).length ? data.lengthschemedetails.filter(item => item.num == data.length)[0].num : ''
+        width = data.widthschemedetails.filter(item => item.num == data.width).length ? data.widthschemedetails.filter(item => item.num == data.width)[0].num : ''
+        if (!width) width = data.width
+        if (!length) length = data.length
+      }
+      let result = ''
+      if (customcheek) result = result + customcheek + ','
+      if (customcolors) result = result + customcolors + ','
+      if (custommaterial) result = result + custommaterial + ','
+      if (length) result = result + length + 'x'
+      if (width) result = result + width
+
+      return result
+    }
+  })
   onActivated (()=>{
     prod.value.listData()
   })
@@ -219,4 +356,11 @@
   background: #f1f2f3;
   overflow: hidden;
 }
+.label{
+  display:inline-block;
+  margin-right:10px
+}
+.mt-10{
+  margin-bottom:20px
+}
 </style>