فهرست منبع

feat(batch-set): 1. 重构setAllValue组件支持number类型输入框
2. 为销售,采购订单物品清单新增批量设置税率功能
3. 完善组件props和重置逻辑

liujt 1 ماه پیش
والد
کامیت
d61ee299cc

+ 15 - 0
src/BIZComponents/inventoryTable.vue

@@ -68,6 +68,13 @@
               valueKey="produceDeliveryDeadline"
               @success="setAllValueChange"
             />
+            <setAllValue
+              :disabled="!selection.length"
+              inputType="number"
+              title="税率"
+              valueKey="taxRate"
+              @success="setAllTaxRateChange"
+            />
           </div>
           <div class="pricebox">
             <span class="amount" v-if="showSummary">数量合计:{{ allQuantity }}</span>
@@ -2172,6 +2179,14 @@
         this.$forceUpdate();
         this.$refs.table.reRenderTable();
       },
+      //批量设置税率
+      setAllTaxRateChange({ key, value }) {
+        let indexS = this.selection.map((item) => item.key - 1);
+        indexS.forEach((i) => {
+          this.$set(this.form.datasource[i], key, value);
+          this.getNotaxSinglePrice();
+        });
+      },
       setAllValueChange({ key, value }) {
         let indexS = this.selection.map((item) => item.key - 1);
         indexS.forEach((i) => {

+ 8 - 2
src/BIZComponents/setAllValue.vue

@@ -18,7 +18,11 @@
       :resizable="true"
       :append-to-body="true"
     >
-      <div>
+      <div v-if="inputType === 'number'">
+        {{ title }}:
+        <el-input v-model="value" placeholder="请输入" type="number" />
+      </div>
+      <div v-else>
         {{ title }}:
         <el-date-picker
           v-model="value"
@@ -50,6 +54,7 @@
         type: Boolean
       },
       valueKey: '',
+      inputType: '',
       title: ''
     },
     created() {},
@@ -63,10 +68,11 @@
         this.cancel();
       },
       cancel() {
+        this.value = '';
         this.show = false;
       }
     }
   };
 </script>
 
-<style scoped lang="scss"></style>
+<style scoped lang="scss"></style>

+ 28 - 1
src/views/purchasingManage/purchaseOrder/components/inventoryTableNew.vue

@@ -9,6 +9,7 @@
       max-height="500px"
       :datasource="form.datasource"
       class="time-form"
+      :selection.sync="selection"
     >
       <!-- 表头工具栏 -->
       <template v-slot:toolbar>
@@ -24,6 +25,13 @@
             >
               新增
             </el-button>
+            <setAllValue
+              :disabled="!selection.length"
+              inputType="number"
+              title="税率"
+              valueKey="taxRate"
+              @success="setAllTaxRateChange"
+            />
           </div>
         </div>
       </template>
@@ -647,6 +655,7 @@
   import { getGoodsPriceByCondition } from '@/api/goodsManage/index';
   import { changeCount, getAllPrice, getAllDiscountPrice, formatPrice } from '@/BIZComponents/setProduct.js';
   import { queryHistoricalUnitPrice } from '@/api/purchasingManage/purchaseOrder';
+  import setAllValue from '@/BIZComponents/setAllValue.vue'; //批量修改
   const dayjs = require('dayjs');
 
   export default {
@@ -677,7 +686,8 @@
       // fileMain,
       productList,
       billDetailDialog,
-      headList
+      headList,
+      setAllValue
     },
     computed: {
       canHandl() {
@@ -701,6 +711,7 @@
         quoteWay: 1
       };
       return {
+        selection: [],
         quoteTypeOp,
         levelList,
         pricingWayList,
@@ -719,6 +730,14 @@
         billDetailDialogFlag: false,
         taskinstanceDialogFlag: false,
         columns: [
+          {
+            label: '选择',
+            width: 45,
+            type: 'selection',
+            columnKey: 'selection',
+            align: 'center',
+            fixed: 'left'
+          },
           {
             width: 45,
             type: 'index',
@@ -1152,6 +1171,14 @@
       this.requestDict('商品价格类型');
     },
     methods: {
+      //批量设置税率
+      setAllTaxRateChange({ key, value }) {
+        let indexS = this.selection.map((item) => item.key - 1);
+        indexS.forEach((i) => {
+          this.$set(this.form.datasource[i], key, value);
+          this.getNotaxSinglePrice();
+        });
+      },
       formatPrice,
       async getPurchaseSinglePrice(row) {
         this.purchaseSinglePriceData = [];