xiaodai2022 2 years ago
parent
commit
79e1443d89

+ 95 - 39
src/views/goodStore/sort/addEditRate.vue

@@ -55,7 +55,7 @@
                 :size="'mini'"
                 :controls="false"
                 :append="'%'"
-                @reschange="order_rate_change"
+                @reschange="rate_change($event, 'order_rate')"
               />
             </el-form-item>
             <el-form-item label="成本→售价" prop="sale_rate">
@@ -69,13 +69,14 @@
                 :size="'mini'"
                 :controls="false"
                 :append="'%'"
-                @reschange="sale_rate_change"
+                @reschange="rate_change($event, 'sale_rate')"
               />
             </el-form-item>
-            <el-form-item label="最低毛利" prop="lower_rate">
+
+            <el-form-item label="主管利率" prop="rate">
               <digital-input
-                :values="ruleForm.lower_rate"
-                :placeholder="'最低毛利'"
+                :values="ruleForm.rate"
+                :placeholder="'主管利率'"
                 :min="-100"
                 :max="100000000000"
                 :position="'right'"
@@ -83,13 +84,27 @@
                 :size="'mini'"
                 :controls="false"
                 :append="'%'"
-                @reschange="lower_rate_change"
+                @reschange="rate_change($event, 'rate')"
               />
             </el-form-item>
-            <el-form-item label="单品修改下限" prop="rate">
+            <el-form-item label="财务利率" prop="money_rate">
               <digital-input
-                :values="ruleForm.rate"
-                :placeholder="'单品修改下限'"
+                :values="ruleForm.money_rate"
+                :placeholder="'财务利率'"
+                :min="-100"
+                :max="100000000000"
+                :position="'right'"
+                :precision="2"
+                :size="'mini'"
+                :controls="false"
+                :append="'%'"
+                @reschange="rate_change($event, 'money_rate')"
+              />
+            </el-form-item>
+            <el-form-item label="项目最低毛利" prop="low_rate">
+              <digital-input
+                :values="ruleForm.low_rate"
+                :placeholder="'项目最低毛利'"
                 :min="-100"
                 :max="100000000000"
                 :position="'right'"
@@ -97,7 +112,21 @@
                 :size="'mini'"
                 :controls="false"
                 :append="'%'"
-                @reschange="rate_change"
+                @reschange="rate_change($event, 'low_rate')"
+              />
+            </el-form-item>
+            <el-form-item label="BOSS毛利率" prop="lower_rate">
+              <digital-input
+                :values="ruleForm.lower_rate"
+                :placeholder="'BOSS毛利率'"
+                :min="-100"
+                :max="100000000000"
+                :position="'right'"
+                :precision="2"
+                :size="'mini'"
+                :controls="false"
+                :append="'%'"
+                @reschange="rate_change($event, 'lower_rate')"
               />
             </el-form-item>
           </el-form>
@@ -126,30 +155,51 @@ export default {
   props: ["showModel", "id", "sitem", "titleList"],
   mixins: [resToken],
   data() {
+    const validate_rate = (rule, value, callback) => {
+      const { required } = rule;
+      if (value === "" && required) {
+        callback(new Error("主管利率毛利率不能为空!"));
+      } else {
+        callback();
+      }
+    };
     const validate_order_rate = (rule, value, callback) => {
-      if (value === "") {
+      const { required } = rule;
+      if (value === "" && required) {
         callback(new Error("预算→成本毛利率不能为空!"));
       } else {
         callback();
       }
     };
     const validate_sale_rate = (rule, value, callback) => {
-      if (value === "") {
+      const { required } = rule;
+      if (value === "" && required) {
         callback(new Error("成本→售价毛利率不能为空!"));
       } else {
         callback();
       }
     };
+
     const validate_lower_rate = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("最低毛利率不能为空!"));
+      const { required } = rule;
+      if (value === "" && required) {
+        callback(new Error("BOSS毛利率不能为空!"));
       } else {
         callback();
       }
     };
-    const validate_rate = (rule, value, callback) => {
-      if (value === "") {
-        callback(new Error("单品修改下限毛利率不能为空!"));
+    const validate_low_rate = (rule, value, callback) => {
+      const { required } = rule;
+      if (value === "" && required) {
+        callback(new Error("项目最低毛利率不能为空!"));
+      } else {
+        callback();
+      }
+    };
+    const validate_money_rate = (rule, value, callback) => {
+      const { required } = rule;
+      if (value === "" && required) {
+        callback(new Error("财务毛利率不能为空!"));
       } else {
         callback();
       }
@@ -165,6 +215,8 @@ export default {
         sale_rate: "0",
         lower_rate: "0",
         rate: "0",
+        low_rate: "0",
+        money_rate: "0",
       },
       rulesThis: this.rules,
       rules: {
@@ -175,9 +227,16 @@ export default {
           { required: true, validator: validate_sale_rate, trigger: "blur" },
         ],
         lower_rate: [
-          { required: true, validator: validate_lower_rate, trigger: "blur" },
+          { required: false, validator: validate_lower_rate, trigger: "blur" },
         ],
         rate: [{ required: true, validator: validate_rate, trigger: "blur" }],
+
+        low_rate: [
+          { required: true, validator: validate_low_rate, trigger: "blur" },
+        ],
+        money_rate: [
+          { required: true, validator: validate_money_rate, trigger: "blur" },
+        ],
       },
     };
   },
@@ -222,6 +281,8 @@ export default {
             lower_rate,
             rate,
             fund_code,
+            low_rate,
+            money_rate,
           } = this.sitem;
           this.ruleForm = {
             pid: pid || "",
@@ -232,31 +293,22 @@ export default {
             sale_rate: sale_rate || "0",
             lower_rate: lower_rate || "0",
             rate: rate || "0",
+            low_rate: low_rate || "0",
+            money_rate: money_rate || "0",
           };
         }
       });
     },
-    order_rate_change(e) {
-      this.ruleForm.order_rate = e + "";
-      this.$refs.ruleForm.validateField("order_rate");
-    },
-    sale_rate_change(e) {
-      this.ruleForm.sale_rate = e + "";
-      this.$refs.ruleForm.validateField("sale_rate");
-    },
-    lower_rate_change(e) {
-      this.ruleForm.lower_rate = e + "";
-      this.$refs.ruleForm.validateField("lower_rate");
-    },
-    rate_change(e) {
-      this.ruleForm.rate = e + "";
-      this.$refs.ruleForm.validateField("rate");
+    rate_change(e, key) {
+      this.ruleForm[key] = e + "";
+      this.$refs.ruleForm.validateField(key);
     },
 
     async initData() {
-      const res = await asyncRequest.detail({ id: this.sitem.id });
-      if (res && res.code === 0 && res.data) {
-        console.log(res.data);
+      const { code, data, message } = await asyncRequest.detail({
+        id: this.sitem.id,
+      });
+      if (code === 0) {
         const {
           pid,
           id,
@@ -266,7 +318,9 @@ export default {
           lower_rate,
           rate,
           fund_code,
-        } = res.data;
+          low_rate,
+          money_rate,
+        } = data;
         this.ruleForm = {
           pid: pid || "",
           id: id || "",
@@ -276,11 +330,13 @@ export default {
           sale_rate: sale_rate || "0",
           lower_rate: lower_rate || "0",
           rate: rate || "0",
+          low_rate: low_rate || "0",
+          money_rate: money_rate || "0",
         };
-      } else if (res && res.code >= 100 && res.code <= 104) {
+      } else if (code >= 100 && code <= 104) {
         await this.logout();
       } else {
-        this.$message.warning(res.message);
+        this.$message.warning(message);
       }
     },
     async submitForm() {

+ 3 - 2
src/views/sellOut/zixunOrder/components/addEditGoodModal.vue

@@ -340,14 +340,15 @@
                       prop="enclosure_file"
                       class="activity-upload"
                     >
-                      <div v-if="ruleForm&&ruleForm.enclosure_file" class="clearfix">
-                        <a :href="ruleForm.enclosure_file" download="附件">点击下载</a>
+                      <div v-if="ruleForm&&ruleForm.enclosure_file" class="clearfix tl">
+                        <a :href="ruleForm.enclosure_file" download="附件" class="fl" >点击下载</a>
 
                         <el-link
                           :underline="false"
                           @click="deleteUrl()"
                           type="warning"
                           style="margin: 0 0 0 16px"
+                          class="fr"
                           >删除</el-link
                         >
                       </div>