asd26269546 1 tahun lalu
induk
melakukan
0827c9b86a
1 mengubah file dengan 29 tambahan dan 100 penghapusan
  1. 29 100
      src/components/process/SendPurchase.vue

+ 29 - 100
src/components/process/SendPurchase.vue

@@ -1,11 +1,6 @@
 <template>
   <div style="width: 100%; padding: 0px 15px">
-    <el-form
-      :model="formData.data"
-      :rules="rules"
-      ref="formDom"
-      label-position="top"
-    >
+    <el-form :model="formData.data" :rules="rules" ref="formDom" label-position="top">
       <div class="_t">基础信息</div>
       <el-row :gutter="10">
         <el-col :span="6">
@@ -22,114 +17,58 @@
         </el-col>
         <el-col :span="6">
           <el-form-item label="采购时间" prop="purchaseTime">
-            <el-date-picker
-              v-model="formData.data.purchaseTime"
-              type="datetime"
-              placeholder="请选择"
-            />
+            <el-date-picker v-model="formData.data.purchaseTime" type="datetime" placeholder="请选择" />
           </el-form-item>
         </el-col>
       </el-row>
       <el-row :gutter="10">
         <el-col :span="8">
           <el-form-item label="供应商" prop="supplyId">
-            <el-select
-              v-model="formData.data.supplyId"
-              placeholder="请选择"
-              @change="handleChangeSupplier"
-              filterable
-              style="width: 100%"
-            >
-              <el-option
-                v-for="item in supplierData"
-                :label="item.name"
-                :value="item.id"
-              >
+            <el-select v-model="formData.data.supplyId" placeholder="请选择" @change="handleChangeSupplier" filterable
+              style="width: 100%">
+              <el-option v-for="item in supplierData" :label="item.name" :value="item.id">
               </el-option>
             </el-select>
           </el-form-item>
         </el-col>
       </el-row>
       <el-form-item label="采购说明" prop="purchaseContent">
-        <el-input
-          v-model="formData.data.purchaseContent"
-          placeholder="请输入"
-          type="textarea"
-        >
+        <el-input v-model="formData.data.purchaseContent" placeholder="请输入" type="textarea">
         </el-input>
       </el-form-item>
       <div class="_t">采购明细</div>
       <el-form-item>
-        <el-button
-          type="primary"
-          @click="openProduct = true"
-          style="margin: 10px 0"
-          v-if="ids.length == 0"
-        >
+        <el-button type="primary" @click="openProduct = true" style="margin: 10px 0" v-if="ids.length == 0">
           添加货品
         </el-button>
         <el-table :data="formData.data.purchaseDetailList">
-          <el-table-column
-            prop="goodType"
-            label="货品类型"
-            :formatter="(row) => (row.goodType == 1 ? '产品' : '物料')"
-          />
+          <el-table-column prop="goodType" label="货品类型" :formatter="(row) => (row.goodType == 1 ? '产品' : '物料')" />
           <el-table-column prop="productCode" label="货品编码" />
           <el-table-column prop="productName" label="货品名称" />
           <el-table-column prop="productSpec" label="规格型号" />
           <el-table-column prop="productUnit" label="单位" />
-          <el-table-column
-            prop="subscribeCount"
-            label="申购数量"
-            v-if="ids.length > 0"
-          />
-          <el-table-column
-            prop="purchaseCount"
-            label="已采购数量"
-            v-if="ids.length > 0"
-          />
+          <el-table-column prop="subscribeCount" label="申购数量" v-if="ids.length > 0" />
+          <el-table-column prop="purchaseCount" label="已采购数量" v-if="ids.length > 0" />
           <el-table-column prop="count" label="本次采购" min-width="150">
             <template #default="{ row, $index }">
-              <el-form-item
-                :prop="'purchaseDetailList.' + $index + '.count'"
-                :rules="rules.count"
-                :inline-message="true"
-              >
-                <el-input-number
-                  onmousewheel="return false;"
-                  v-model="row.count"
-                  :precision="4"
-                  :controls="false"
-                  :min="0"
-                  @change="handleChangeAmount"
-                />
+              <el-form-item :prop="'purchaseDetailList.' + $index + '.count'" :rules="rules.count" :inline-message="true">
+                <el-input-number onmousewheel="return false;" :value="formData.data.purchaseDetailList[$index].count"
+                  :precision="4" :controls="false" :min="0" @change="(e) => handleChangeAmount(e, $index, 'count')" />
               </el-form-item>
             </template>
           </el-table-column>
           <el-table-column prop="price" label="单价" min-width="150">
             <template #default="{ row, $index }">
-              <el-form-item
-                :prop="'purchaseDetailList.' + $index + '.price'"
-                :rules="rules.price"
-                :inline-message="true"
-              >
-                <el-input-number
-                  onmousewheel="return false;"
-                  v-model="row.price"
-                  :precision="4"
-                  :controls="false"
-                  :min="0"
-                  @change="handleChangeAmount"
-                />
+              <el-form-item :prop="'purchaseDetailList.' + $index + '.price'" :rules="rules.price" :inline-message="true">
+                <el-input-number onmousewheel="return false;" :value="formData.data.purchaseDetailList[$index].price"
+                  :precision="4" :controls="false" :min="0" @change="(e) => handleChangeAmount(e, $index, 'price')" />
               </el-form-item>
             </template>
           </el-table-column>
           <el-table-column prop="amount" label="金额" />
           <el-table-column prop="zip" label="操作" width="100">
             <template #default="{ $index }">
-              <el-button type="primary" link @click="handleRemove($index)"
-                >删除</el-button
-              >
+              <el-button type="primary" link @click="handleRemove($index)">删除</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -137,25 +76,13 @@
       <el-row>
         <el-col :span="4">
           <el-form-item label="采购金额" prop="amount">
-            <el-input
-              v-model="formData.data.amount"
-              placeholder="请输入"
-              disabled
-            />
+            <el-input v-model="formData.data.amount" placeholder="请输入" disabled />
           </el-form-item>
         </el-col>
       </el-row>
     </el-form>
-    <el-dialog
-      v-model="openProduct"
-      title="选择货品"
-      width="70%"
-      append-to-body
-    >
-      <SelectGoods
-        @cancel="openProduct = false"
-        @pushGoods="pushGoods"
-      ></SelectGoods>
+    <el-dialog v-model="openProduct" title="选择货品" width="70%" append-to-body>
+      <SelectGoods @cancel="openProduct = false" @pushGoods="pushGoods"></SelectGoods>
     </el-dialog>
   </div>
 </template>
@@ -325,14 +252,16 @@ const handleChangeSupplier = (val) => {
   console.log(val, "as");
 };
 // 计算采购总金额
-const handleChangeAmount = () => {
+const handleChangeAmount = (value, index, key) => {
+  formData.data.purchaseDetailList[index][key] = value;
+  console.log(formData.data.purchaseDetailList[index])
+  formData.data.purchaseDetailList[index].amount = parseFloat(formData.data.purchaseDetailList[index].count * formData.data.purchaseDetailList[index].price).toFixed(4)
   let sum = 0;
-  for (let i = 0; i < formData.data.purchaseDetailList.length; i++) {
-    const e = formData.data.purchaseDetailList[i];
-    e.amount = e.count * e.price;
-    sum += e.amount;
-  }
-  formData.data.amount = sum;
+  formData.data.purchaseDetailList.forEach((x) => {
+    sum += x.amount;
+  });
+  formData.data.amount = parseFloat(sum).toFixed(2)
+
 };
 // 向父组件暴露
 defineExpose({