فهرست منبع

部分新需求

cz 1 سال پیش
والد
کامیت
8a36d8f4b8

+ 11 - 8
src/components/process/SF/Purchase.vue

@@ -954,17 +954,13 @@ const changeSupplierPrice = (val) => {
           for (let i = 0; i < formData.data.purchaseProductList.length; i++) {
             const e = formData.data.purchaseProductList[i];
             for (const key in res) {
-              if (e.productId === key) {
-                e.price = Number(res[key]);
+              if (e.productId === key && res[key]) {
+                e.price = Number(res[key].price);
+                e.priceIncludingTax = Number(res[key].includingTaxPrice);
                 break;
               }
             }
           }
-        } else {
-          // for (let i = 0; i < formData.data.purchaseProductList.length; i++) {
-          //   const e = formData.data.purchaseProductList[i];
-          //   e.price = 0;
-          // }
         }
         calculationAmount();
       });
@@ -974,7 +970,10 @@ const changeSupplier = (val) => {
   // 产品价格趋势
   changeProductPrice();
   // 供应价格
-  changeSupplierPrice(val);
+  if (route.query.dataType == 1) {
+    changeSupplierPrice(val);
+  }
+
   formData.data.countryId = "";
   formData.data.provinceId = "";
   formData.data.cityId = "";
@@ -1337,6 +1336,10 @@ const getProductList = (ids) => {
         calculationAmount();
         changeProductPrice();
       }
+      if (res.supplierId) {
+        formData.data.sellCorporationId = res.supplierId;
+        changeSupplier(formData.data.sellCorporationId);
+      }
     });
   }
 };

+ 30 - 0
src/components/process/SF/Subscribe.vue

@@ -393,12 +393,39 @@ const rules = ref({
   ],
 });
 
+const changeSupplierPrice = (val) => {
+  let productIds = formData.data.subscribeDetailList.map((x) => x.productId);
+  if (val && productIds && productIds.length > 0) {
+    proxy
+      .post("/supplierPrice/getSupplierPriceByProductIds", {
+        supplierInfoId: val,
+        productIdList: productIds,
+      })
+      .then((res) => {
+        if (res && Object.keys(res).length > 0) {
+          for (let i = 0; i < formData.data.subscribeDetailList.length; i++) {
+            const e = formData.data.subscribeDetailList[i];
+            for (const key in res) {
+              if (e.productId === key && res[key]) {
+                e.price = Number(res[key].price);
+                e.priceIncludingTax = Number(res[key].includingTaxPrice);
+                break;
+              }
+            }
+          }
+        }
+        calculationAmount();
+      });
+  }
+};
+
 const changeSupplier = (val) => {
   proxy.post("/supplierInfo/detail", { id: val }).then((res) => {
     formData.data.contact = res.contactPerson + "," + res.contactNumber;
     formData.data.privIncludingTax = res.privIncludingTax;
     formData.data.privTaxPoints = res.privTaxPoints;
   });
+  changeSupplierPrice(val);
 };
 
 const getDeptData = (val) => {
@@ -532,6 +559,9 @@ const selectMaterial = (row) => {
       remark: "",
     });
     proxy.msgTip("选择成功");
+    if (formData.data.supplierId) {
+      changeSupplierPrice(formData.data.supplierId);
+    }
   } else {
     proxy.msgTip("该物料已选择", 2);
   }

+ 25 - 4
src/views/EHSD/saleContract/contractEHSD/index.vue

@@ -83,15 +83,26 @@
 
         <template #deliveryTime="{ item }">
           <div style="width: 100%;display:flex;align-items:center">
-            <el-icon v-if="item.orderDistributeStatus==1 && item.deliveryTime" :size="16" style="cursor:pointer;margin-right: 8px;" color="#409EFF"
+            <!-- <el-icon v-if="item.orderDistributeStatus==1 && item.deliveryTime" :size="16" style="cursor:pointer;margin-right: 8px;" color="#409EFF"
                      @click="clickDistributeProduction(item)">
               <Edit />
-            </el-icon>
+            </el-icon> -->
             <div v-if="item.deliveryTime">
               {{item.deliveryTime.slice(0,10)}}
             </div>
           </div>
         </template>
+        <template #prodDeliveryPeriod="{ item }">
+          <div style="width: 100%;display:flex;align-items:center">
+            <el-icon v-if="item.orderDistributeStatus==1 && item.prodDeliveryPeriod" :size="16" style="cursor:pointer;margin-right: 8px;"
+                     color="#409EFF" @click="clickDistributeProduction(item)">
+              <Edit />
+            </el-icon>
+            <div v-if="item.prodDeliveryPeriod">
+              {{item.prodDeliveryPeriod.slice(0,10)}}
+            </div>
+          </div>
+        </template>
 
         <template #prodTag="{ item }">
           <div style="width: 100%;display:flex;align-items:center">
@@ -624,11 +635,19 @@ const config = computed(() => {
     },
     {
       attrs: {
-        label: "交期",
+        label: "合同交期",
         slot: "deliveryTime",
+        width: 100,
+      },
+    },
+    {
+      attrs: {
+        label: "生产交期",
+        slot: "prodDeliveryPeriod",
         width: 130,
       },
     },
+
     {
       attrs: {
         label: "下发生产时间",
@@ -1674,7 +1693,7 @@ const productionFormConfig = computed(() => [
   },
   {
     type: "date",
-    itemType: "datet",
+    itemType: "date",
     label: "交期",
     prop: "deliveryPeriod",
     // placeholder: "合同开始时间",
@@ -1693,6 +1712,7 @@ const productionRules = ref({
     { required: true, message: "请选择交期", trigger: "change" },
   ],
 });
+
 const clickDistributeProduction = (row) => {
   formData.data = {
     contractId: row.id,
@@ -1703,6 +1723,7 @@ const clickDistributeProduction = (row) => {
   };
   productionDialog.value = true;
 };
+
 const submitProduction = () => {
   productionFormDom.value.handleSubmit(() => {
     let url =

+ 47 - 6
src/views/MES/productionTask/index.vue

@@ -11,19 +11,48 @@
     <div style="background:#fff">
       <el-tabs v-model="pageActiveName" type="card" class="demo-tabs" @tab-change="handlePageTabChange">
         <el-tab-pane label="在手任务" name="1">
+          <template #label>
+            <div style="display:flex;align-items:center">
+              <div>在手任务</div>
+              <div class="badge">{{taskCountObj['onHandCount'] || 0}}</div>
+            </div>
+          </template>
         </el-tab-pane>
         <el-tab-pane label="已完成" name="2">
+          <template #label>
+            <div style="display:flex;align-items:center">
+              <div>已完成</div>
+              <div class="badge">{{taskCountObj['completedCount'] || 0}}</div>
+            </div>
+          </template>
+
         </el-tab-pane>
         <el-tab-pane label="所有任务" name="3">
+          <template #label>
+            <div style="display:flex;align-items:center">
+              <div>所有任务</div>
+              <div class="badge">{{taskCountObj['allCount'] || 0}}</div>
+            </div>
+          </template>
         </el-tab-pane>
         <el-tab-pane label="车间工序结存" name="4">
+          <template #label>
+            <div style="display:flex;align-items:center">
+              <div>车间工序结存</div>
+              <div class="badge">{{taskCountObj['balanceCount'] || 0}}</div>
+            </div>
+          </template>
+
         </el-tab-pane>
         <el-tab-pane v-for="item in processesData" :label="item.name" :name="item.id" :key="item.id">
           <template #label>
-            <div>
-              <el-badge :value="Number(taskCountObj[item.id])||0" :max="99">
+            <div style="display:flex;align-items:center">
+              <!-- <el-badge :value="Number(taskCountObj[item.id])||0" :max="99">
                 {{item.name}}
-              </el-badge>
+              </el-badge> -->
+              <div>
+                {{item.name}} </div>
+              <div class="badge">{{Number(taskCountObj[item.id])||0}}</div>
             </div>
           </template>
         </el-tab-pane>
@@ -381,7 +410,7 @@
       </template>
     </el-dialog>
 
-    <el-dialog title="备注" v-model="remarkDialog" width="500" destroy-on-close v-if="remarkDialog">
+    <el-dialog title="进度说明" v-model="remarkDialog" width="50%" destroy-on-close v-if="remarkDialog">
       <byForm :formConfig="formConfig" :formOption="formOption" v-model="formData.data" :rules="rules" ref="formDom" v-loading="submitLoading">
       </byForm>
       <template #footer>
@@ -1094,14 +1123,14 @@ const formConfig = computed(() => {
       type: "input",
       prop: "remark",
       itemType: "textarea",
-      label: "备注",
+      label: "进度说明",
       itemWidth: 100,
       disabled: false,
     },
   ];
 });
 const rules = ref({
-  remark: [{ required: true, message: "请输入备注", trigger: "blur" }],
+  remark: [{ required: true, message: "请输入进度说明", trigger: "blur" }],
 });
 
 const getTableList = (req) => {
@@ -1745,5 +1774,17 @@ const submitFormOne = () => {
 ::v-deep(.el-tabs__nav-scroll) {
   overflow: visible !important;
 }
+.badge {
+  padding: 6px;
+  font-size: 12px;
+  font-weight: 700;
+  color: #fff;
+  background: #f56c6c;
+  border-radius: 10px;
+  height: 18px;
+  line-height: 8px;
+  margin-left: 2px;
+  margin-top: -2px;
+}
 </style>
 

+ 3 - 3
src/views/product/material/index.vue

@@ -276,7 +276,7 @@ const configOne = computed(() => {
         width: 100,
       },
       render(val) {
-        return proxy.moneyFormat(val, 2);
+        return proxy.moneyFormat(val, 3);
       },
     },
     {
@@ -436,7 +436,7 @@ const config = computed(() => {
         width: 100,
       },
       render(val) {
-        return proxy.moneyFormat(val, 2);
+        return proxy.moneyFormat(val, 3);
       },
     },
 
@@ -565,7 +565,7 @@ const formConfig = computed(() => {
       type: "number",
       prop: "price",
       label: "销售价(cm²)",
-      precision: 2,
+      precision: 3,
       min: 0.01,
       controls: false,
       itemWidth: 50,

+ 4 - 0
src/views/purchaseManage/purchaseManage/purchase/index.vue

@@ -538,6 +538,7 @@ watch(selectData, (newVal, oldVal) => {
 const start = () => {
   if (selectData.value.length > 0) {
     let rowCompanyId = selectData.value[0].companyId;
+    let dataType = selectData.value[0].dataType;
     let ids = selectData.value.map((x) => x.id).join();
     proxy.$router.replace({
       path: "/platform_manage/process/processApproval",
@@ -546,6 +547,7 @@ const start = () => {
         random: proxy.random(),
         ids,
         companyId: rowCompanyId,
+        dataType,
       },
     });
   } else {
@@ -560,6 +562,7 @@ const startOne = () => {
   if (selectData.value.length > 0) {
     let rowId = selectData.value[0].subcribeId;
     let rowCompanyId = selectData.value[0].companyId;
+    let dataType = selectData.value[0].dataType;
     proxy
       .post("/subscribeDetail/page", {
         pageNum: 1,
@@ -579,6 +582,7 @@ const startOne = () => {
             random: proxy.random(),
             ids,
             companyId: rowCompanyId,
+            dataType,
           },
         });
       });