Browse Source

Merge branch 'purchaseDev' into 'dev'

Purchase dev20231213

See merge request new-business/drp-web!614
李园 1 year ago
parent
commit
26c155b9ed

+ 9 - 0
src/api/business/purchase/task.js

@@ -89,3 +89,12 @@ export function RECORD(data) {
   });
   });
 }
 }
 
 
+// 批改 /pu/order/generate
+export function GENERATE(data) {
+  return request({
+    url: "/pu/order/generate",
+    method: "PUT",
+    data: data,
+  });
+}
+

+ 95 - 81
src/views/purchase/task/columns.js

@@ -1,7 +1,7 @@
 export default function useColumns() {
 export default function useColumns() {
   const TableColumns = [
   const TableColumns = [
     {
     {
-      item: { key: "status", title: "状态" ,width :100},
+      item: { key: "status", title: "状态", width: 100 },
       attr: {
       attr: {
         is: "el-dict-tag",
         is: "el-dict-tag",
         dictName: "purchase_task_status",
         dictName: "purchase_task_status",
@@ -9,106 +9,120 @@ export default function useColumns() {
       },
       },
     },
     },
     {
     {
-      item: { key: "existPrice", title: "是否有价格",width :90 },
+      item: { key: "existPrice", title: "是否有价格", width: 90 },
       attr: { is: "el-dict-tag", dictName: "sys_true_false" },
       attr: { is: "el-dict-tag", dictName: "sys_true_false" },
     },
     },
     {
     {
-      item: { key: "materialCode", title: "物料编码",width :120 },
+      item: { key: "materialCode", title: "物料编码", width: 120 },
       attr: {},
       attr: {},
     },
     },
-    { item: { key: "materialName", title: "物料名称",width :150 }, attr: {} },
-    { item: { key: "specification", title: "规格",width :100 }, attr: {} },
+    { item: { key: "materialName", title: "物料名称", width: 150 }, attr: {} },
+    { item: { key: "specification", title: "规格", width: 100 }, attr: {} },
     {
     {
-      item: { key: "manufacturerName", title: "生产厂家" ,width :100},
+      item: { key: "manufacturerName", title: "生产厂家", width: 100 },
       attr: {},
       attr: {},
     },
     },
-    { item: { key: "unitName", title: "单位" ,width :60}, attr: {} },
-    { item: { key: "puQty", title: "采购数量",width :80 }, 
+    { item: { key: "unitName", title: "单位", width: 60 }, attr: {} },
+    {
+      item: { key: "puQty", title: "采购数量", width: 80 },
       attr: {
       attr: {
-        isSummary:true,
-      } 
+        isSummary: true,
+      }
     },
     },
     {
     {
-      item: { key: "executeQty", title: "已执行数量" ,width :90},
+      item: { key: "executeQty", title: "已执行数量", width: 90 },
       attr: {
       attr: {
-        isSummary:true,
+        isSummary: true,
       },
       },
     },
     },
     {
     {
-      item: { key: "residueQty", title: "未执行数量",width :90 },
+      item: { key: "residueQty", title: "未执行数量", width: 90 },
       attr: {
       attr: {
-        isSummary:true,
+        isSummary: true,
       },
       },
     },
     },
     {
     {
-      item: { key: "closeQty", title: "关闭数量",width :80 },
+      item: { key: "closeQty", title: "关闭数量", width: 80 },
       attr: {
       attr: {
-        isSummary:true,
+        isSummary: true,
       },
       },
     },
     },
-    { item: { key: "buyerName", title: "采购员",width :80 }, attr: {} },
+    { item: { key: "buyerName", title: "采购员", width: 80 }, attr: {} },
     {
     {
-      item: { key: "customerName", title: "收货客户",width :100 },
+      item: { key: "customerName", title: "收货客户", width: 100 },
       attr: {},
       attr: {},
     },
     },
-    { item: { key: "demandCode", title: "需求单号",width :150 }, attr: {} },
-    { item: { key: "isUrgency", title: "紧急程度",width :75 },
-      attr: { 
+    { item: { key: "demandCode", title: "需求单号", width: 150 }, attr: {} },
+    {
+      item: { key: "isUrgency", title: "紧急程度", width: 75 },
+      attr: {
         clearable: true,
         clearable: true,
-        is: "el-dict-tag", 
-        dictName: "urgency_degree" 
+        is: "el-dict-tag",
+        dictName: "urgency_degree"
       },
       },
     },
     },
-    { item: { key: "isReplenishment", title: "补单标识",width :75 }, 
-      attr: { 
+    {
+      item: { key: "isReplenishment", title: "补单标识", width: 75 },
+      attr: {
         clearable: true,
         clearable: true,
-        is: "el-dict-tag", 
-        dictName: "sys_yes_no" 
+        is: "el-dict-tag",
+        dictName: "sys_yes_no"
       },
       },
     },
     },
     {
     {
-      item: { key: "assignSupplierName", title: "指定供应商" ,width :100},
+      item: { key: "assignSupplierName", title: "指定供应商", width: 100 },
       attr: {},
       attr: {},
     },
     },
-    { item: { key: "code", title: "订单生成单号",width :160 }, attr: {} },
-    { 
-      item: { key: "createTime", title: "创建时间",width:135 ,}, 
-      attr: {} 
+    {
+      item: {
+        key: "priceType",
+        title: "价格类型",
+        width: 100,
+      },
+      attr: {
+        is: "el-dict-tag",
+        dictName: "sys_price_type",
+      }
+    },
+    { item: { key: "code", title: "订单生成单号", width: 160 }, attr: {} },
+    {
+      item: { key: "createTime", title: "创建时间", width: 135, },
+      attr: {}
     },
     },
     // {
     // {
     //   item: { key: "demandOrgName", title: "需求组织" ,width :100},
     //   item: { key: "demandOrgName", title: "需求组织" ,width :100},
     //   attr: {},
     //   attr: {},
     // },
     // },
     {
     {
-      item: { key: "puOrgName", title: "采购组织" ,width :100},
+      item: { key: "puOrgName", title: "采购组织", width: 100 },
       attr: {},
       attr: {},
     },
     },
-    { item: { key: "demandDate", title: "需求时间",width :100 }, attr: {} },
+    { item: { key: "demandDate", title: "需求时间", width: 100 }, attr: {} },
     {
     {
-      item: { key: "isBack", title: "是否退回",width :75 },
+      item: { key: "isBack", title: "是否退回", width: 75 },
       attr: { is: "el-dict-tag", dictName: "sys_yes_no" },
       attr: { is: "el-dict-tag", dictName: "sys_yes_no" },
     },
     },
-    { item: { key: "baskCause", title: "退回原因" ,width :100}, attr: {} },
-    { item: { key: "backDate", title: "退回日期",width :100 }, attr: {} },
+    { item: { key: "baskCause", title: "退回原因", width: 100 }, attr: {} },
+    { item: { key: "backDate", title: "退回日期", width: 100 }, attr: {} },
     {
     {
-      item: { key: "demandPersonalName", title: "需求人",width :100 },
+      item: { key: "demandPersonalName", title: "需求人", width: 100 },
       attr: {},
       attr: {},
     },
     },
-    
+
     {
     {
-      item: { key: "demandDeptName", title: "需求部门",width :100 },
+      item: { key: "demandDeptName", title: "需求部门", width: 100 },
       attr: {},
       attr: {},
     },
     },
-    { 
-      item:{ key: "redeployName", title: "被转派人" , width:100 ,},
-      attr:{
-        isHidden:true,
+    {
+      item: { key: "redeployName", title: "被转派人", width: 100, },
+      attr: {
+        isHidden: true,
       },
       },
     },
     },
-    { 
-      item:{ key: "redeployDate", title: "转派时间" ,width:135 ,},
-      attr:{
-        isHidden:true,
+    {
+      item: { key: "redeployDate", title: "转派时间", width: 135, },
+      attr: {
+        isHidden: true,
       },
       },
     },
     },
     // {
     // {
@@ -126,16 +140,16 @@ export default function useColumns() {
     //   item: { key: "materialDesc", title: "物料描述",width :100 },
     //   item: { key: "materialDesc", title: "物料描述",width :100 },
     //   attr: {},
     //   attr: {},
     // },
     // },
-    
-    
+
+
     // {
     // {
     //   item: { key: "priceType", title: "价格类型" ,width :100},
     //   item: { key: "priceType", title: "价格类型" ,width :100},
     //   attr: { is: "el-dict-tag", dictName: "sys_price_type" },
     //   attr: { is: "el-dict-tag", dictName: "sys_price_type" },
     // },
     // },
-    
+
     // { item: { key: "puUnitName", title: "采购单位",width :100 }, attr: {} },
     // { item: { key: "puUnitName", title: "采购单位",width :100 }, attr: {} },
-    
-    
+
+
     // {
     // {
     //   item: { key: "supplierName", title: "建议供应商",width :100 },
     //   item: { key: "supplierName", title: "建议供应商",width :100 },
     //   attr: {},
     //   attr: {},
@@ -143,14 +157,14 @@ export default function useColumns() {
     // { item: { key: "puOrgName", title: "采购组织",width :100 }, attr: {} },
     // { item: { key: "puOrgName", title: "采购组织",width :100 }, attr: {} },
     // { item: { key: "currencyName", title: "币种",width :100 }, attr: {} },
     // { item: { key: "currencyName", title: "币种",width :100 }, attr: {} },
     // { item: { key: "source", title: "需求单号" ,width :100}, attr: {} },
     // { item: { key: "source", title: "需求单号" ,width :100}, attr: {} },
-   
-   
-    
+
+
+
     // { item: { key: "projectName", title: "项目名称",width :100 }, attr: {} },
     // { item: { key: "projectName", title: "项目名称",width :100 }, attr: {} },
-    
-    
-    
-    
+
+
+
+
   ].map(({ item, attr }) => ({
   ].map(({ item, attr }) => ({
     attr,
     attr,
     item: {
     item: {
@@ -186,13 +200,13 @@ export default function useColumns() {
       },
       },
     },
     },
     {
     {
-      item: { 
-        key: "existPrice", 
+      item: {
+        key: "existPrice",
         title: "是否有价格",
         title: "是否有价格",
       },
       },
-      attr: { 
-        is: "el-select", 
-        dictName: "sys_true_false" ,
+      attr: {
+        is: "el-select",
+        dictName: "sys_true_false",
         clearable: true,
         clearable: true,
       },
       },
     },
     },
@@ -233,13 +247,13 @@ export default function useColumns() {
       },
       },
       attr: {
       attr: {
         is: "el-select",
         is: "el-select",
-        multiple:true,
-        collapseTags:true,
+        multiple: true,
+        collapseTags: true,
         dictName: "purchase_task_status",
         dictName: "purchase_task_status",
         clearable: true,
         clearable: true,
       },
       },
     },
     },
-    
+
     {
     {
       item: {
       item: {
         key: "buyers",
         key: "buyers",
@@ -261,8 +275,8 @@ export default function useColumns() {
       },
       },
     },
     },
     {
     {
-      item: { 
-        key: "assignSupplierName", 
+      item: {
+        key: "assignSupplierName",
         title: "指定供应商",
         title: "指定供应商",
         width: 100,
         width: 100,
       },
       },
@@ -284,32 +298,32 @@ export default function useColumns() {
       },
       },
     },
     },
     {
     {
-      item: { 
-        key: "isUrgency", 
+      item: {
+        key: "isUrgency",
         title: "紧急标识",
         title: "紧急标识",
       },
       },
-      attr: { 
+      attr: {
         clearable: true,
         clearable: true,
-        is: "el-select", 
-        dictName: "urgency_degree" 
+        is: "el-select",
+        dictName: "urgency_degree"
       },
       },
     },
     },
     {
     {
-      item: { 
-        key: "isReplenishment", 
+      item: {
+        key: "isReplenishment",
         title: "补单标识",
         title: "补单标识",
       },
       },
-      attr: { 
+      attr: {
         clearable: true,
         clearable: true,
-        is: "el-select", 
-        dictName: "sys_yes_no" 
+        is: "el-select",
+        dictName: "sys_yes_no"
       },
       },
     },
     },
     {
     {
       item: {
       item: {
         key: "date",
         key: "date",
         title: "创建时间",
         title: "创建时间",
-        span:12
+        span: 12
       },
       },
       attr: {
       attr: {
         is: "el-date-picker",
         is: "el-date-picker",

+ 11 - 9
src/views/purchase/task/index.vue

@@ -17,6 +17,7 @@ export default {
     ElSuperTable: () => import("@/components/super-table/index.vue"),
     ElSuperTable: () => import("@/components/super-table/index.vue"),
     ElSuperUxTable: () => import("@/components/super-ux-table/index.vue"),
     ElSuperUxTable: () => import("@/components/super-ux-table/index.vue"),
     ElSuperSearch: () => import("@/components/super-search/index.vue"),
     ElSuperSearch: () => import("@/components/super-search/index.vue"),
+    PgButton: () => import("./pi-gai/index.vue"),
   },
   },
   data() {
   data() {
     const { TableColumns, SearchColumns } = useColumns();
     const { TableColumns, SearchColumns } = useColumns();
@@ -157,11 +158,7 @@ export default {
           @success="useQuery(params, page)"
           @success="useQuery(params, page)"
         >
         >
         </zp-button>
         </zp-button>
-        <zpjl-button
-          :size="size"
-          :select-data="selectData"
-        >
-        </zpjl-button>
+        <zpjl-button :size="size" :select-data="selectData"> </zpjl-button>
 
 
         <lc-button
         <lc-button
           :size="size"
           :size="size"
@@ -170,14 +167,19 @@ export default {
         >
         >
         </lc-button>
         </lc-button>
       </el-button-group>
       </el-button-group>
-      <!-- <el-button-group>
-        <dc-button
+      <el-button-group>
+        <pg-button
+          :size="size"
+          :select-data="selectData"
+          @success="useQuery(params, page)"
+        ></pg-button>
+        <!-- <dc-button
           :size="size"
           :size="size"
           :page="page"
           :page="page"
           :data="params"
           :data="params"
           @success="useQuery(params, page)"
           @success="useQuery(params, page)"
-        ></dc-button>
-      </el-button-group> -->
+        ></dc-button> -->
+      </el-button-group>
     </div>
     </div>
     <el-super-ux-table
     <el-super-ux-table
       v-model="tableData"
       v-model="tableData"

+ 58 - 0
src/views/purchase/task/pi-gai/columns.js

@@ -0,0 +1,58 @@
+export default function useColumns() {
+  const TableColumns = [
+    {
+      item: {
+        key: "candidate",
+        title: "修改项",
+      },
+      attr: {}
+    },
+    {
+      item: {
+        key: "value",
+        title: "修改值",
+      },
+      attr: {}
+    },
+  ];
+
+  const SelectColumns = [
+    {
+      item: {
+        key: "priceType",
+        title: "价格类型",
+      },
+      attr: {
+        is: "el-select",
+        dictName: "sys_price_type",
+      }
+    },
+    {
+      item: {
+        key: "assignSupplierName",
+        title: "指定供应商",
+        // key: "supplierName",
+      },
+      attr: {
+        readonly: true,
+        is: "el-popover-select-v2",
+        valueKey: "name",
+        referName: "SUPPLIER_PARAM",
+        dataMapping: {
+          assignSupplier: 'id',
+          assignSupplierName: 'name'
+        },
+      },
+    },
+
+  ].map(({ item, attr }) => {
+    return {
+      item: { ...item },
+      attr: {
+        ...attr,
+        disabled: false,
+      }
+    }
+  });
+  return { TableColumns, SelectColumns }
+}

+ 353 - 0
src/views/purchase/task/pi-gai/index.vue

@@ -0,0 +1,353 @@
+<script>
+import { GENERATE } from "@/api/business/purchase/task";
+import useColumns from "./columns";
+import { dicts } from "../dicts";
+
+export default {
+  name: "PiGai",
+  props: {
+    selectData: {
+      type: Array,
+      require: true,
+    },
+  },
+  dicts: dicts,
+  components: {
+    ElPopoverSelectV2: () => import("@/components/popover-select-v2/index.vue"),
+    ElPopoverMultipleSelectV2: () =>
+      import("@/components/popover-select-v2/multiple.vue"),
+    ElPopoverTreeSelect: () =>
+      import("@/components/popover-tree-select/index.vue"),
+    ElPopoverMultipleTreeSelect: () =>
+      import("@/components/popover-tree-select/multiple.vue"),
+    ElDateWrapper: () => import("@/components/date-wrapper/index.vue"),
+  },
+  data() {
+    let { TableColumns, SelectColumns } = useColumns();
+    return {
+      title: "批改",
+      visible: false,
+      TableColumns: TableColumns,
+      SelectColumns: SelectColumns,
+      innerValue: [],
+    };
+  },
+  computed: {
+    disabled: {
+      get() {
+        let { selectData } = this.$props;
+        if (selectData.length > 0) {
+          // 0-自由态;3-已回退
+          const STATUS = ["0", "3"];
+          let notList = selectData.filter(
+            (item) => STATUS.findIndex((s) => s == item.status) === -1
+          );
+          return notList.length > 0;
+        }
+        return true;
+      },
+      set() {},
+    },
+  },
+  watch: {},
+  methods: {
+    onClick() {
+      this.visible = true;
+    },
+    async onSave() {
+      try {
+        this.$modal.loading("处理中......");
+
+        let puOrderGenerateList = JSON.parse(
+          JSON.stringify(this.innerValue)
+        ).map((item) => {
+          if (item.attr.is === "el-popover-select-v2") {
+            for (const key in item.attr.dataMapping) {
+              item[key] = item[key] || "~";
+            }
+          } else {
+            item[item.candidate] = item["value"] === "" ? "~" : item["value"];
+          }
+          return item;
+        });
+
+        let ids = this.$props.selectData.map((item) => item.id);
+
+        console.log({ puOrderGenerateList, ids }, "puOrderGenerateList");
+
+        let { code, msg } = await GENERATE({
+          ids,
+          puOrderGenerateList,
+        });
+
+        if (code === 200) {
+          this.$notify.success({ message: msg });
+          this.$emit("success");
+          this.onCancel();
+        }
+      } catch (error) {
+      } finally {
+        this.$modal.closeLoading();
+      }
+    },
+    onCancel() {
+      this.visible = false;
+      let { TableColumns, SelectColumns } = useColumns();
+      this.TableColumns = TableColumns;
+      this.SelectColumns = SelectColumns;
+      this.innerValue = [];
+    },
+    onRowAdd() {
+      this.innerValue.push({
+        ...this.$init.params([...this.TableColumns]),
+        attr: {
+          is: "el-input",
+        },
+      });
+    },
+    canidateChange(prop) {
+      let { $index, row } = prop;
+      this.judgeDisabled();
+
+      let selectValue = this.SelectColumns.filter(
+        ({ item }) => item.key === row.candidate
+      )[0];
+
+      let attr = selectValue.attr ? selectValue.attr : { is: "el-input" };
+
+      this.innerValue = this.innerValue.map((tableItem, index) => {
+        if (row.candidate === tableItem.candidate && $index === index) {
+          tableItem.attr = attr;
+          tableItem.value = "";
+        }
+
+        return tableItem;
+      });
+    },
+    judgeDisabled(prop) {
+      // 重置
+      this.SelectColumns = this.SelectColumns.map(({ item, attr }) => {
+        item.disabled = false;
+
+        let index = this.innerValue.findIndex(
+          (inVal) => inVal.candidate === item.key
+        );
+        // 存在
+        if (index !== -1) {
+          item.disabled = true;
+        }
+
+        return {
+          item,
+          attr,
+        };
+      });
+    },
+    onRowRemove(prop) {
+      const { $index, row } = prop;
+      this.innerValue.splice($index, 1);
+      this.judgeDisabled();
+    },
+  },
+  created() {},
+};
+</script>
+
+<template>
+  <el-button :size="$attrs.size" :disabled="disabled" @click="onClick"
+    >{{ title }}
+    <el-dialog
+      :show-close="false"
+      :visible.sync="visible"
+      width="50%"
+      append-to-body
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+    >
+      <div slot="title" style="display: flex; justify-content: space-between">
+        <h4 style="margin: 0">{{ title }}</h4>
+        <div>
+          <el-button :size="$attrs.size" type="primary" @click="onSave"
+            >确认</el-button
+          >
+          <el-button :size="$attrs.size" @click="onCancel">取消</el-button>
+        </div>
+      </div>
+
+      <el-row style="display: flex; align-items: center; margin-bottom: 6px">
+        <el-col :span="12">
+          <span style="color: #ff4e4e; display: inline-block">*</span>
+          批改范围:仅选中内容
+        </el-col>
+        <el-col style="padding-left: 10px">
+          <el-button type="text" @click.native.prevent="onRowAdd">
+            <i class="el-icon-plus"></i>
+            新增修改项
+          </el-button>
+        </el-col>
+      </el-row>
+
+      <el-table
+        :data="innerValue"
+        style="width: 100%"
+        :show-header="false"
+        :height="320"
+        empty-text=" "
+        v-bind="$attrs"
+        v-on="$listeners"
+      >
+        <el-table-column
+          v-for="({ item, attr }, index) in TableColumns"
+          :key="item.key + index"
+          :prop="item.key"
+          :label="item.title"
+          :fixed="item.fixed"
+          :width="item.width || 200"
+          show-overflow-tooltip
+        >
+          <template slot-scope="scope">
+            <el-select
+              v-if="item.key === 'candidate'"
+              v-model="scope.row[item.key]"
+              :size="$attrs.size"
+              placeholder="请选择"
+              @change="canidateChange(scope)"
+            >
+              <el-option
+                v-for="(c, index) in SelectColumns"
+                :key="index + c.item.key"
+                :label="c.item.title"
+                :value="c.item.key"
+                :disabled="c.item.disabled"
+              ></el-option>
+            </el-select>
+
+            <template v-if="item.key === 'value'">
+              <component
+                v-if="scope.row.attr.is === 'el-select'"
+                v-bind="scope.row.attr"
+                :size="$attrs.size"
+                v-model="scope.row[item.key]"
+              >
+                <template>
+                  <el-option
+                    v-for="d in dict.type[scope.row.attr.dictName]"
+                    :key="d.value"
+                    :label="d.label"
+                    :value="d.value"
+                  >
+                  </el-option>
+                </template>
+              </component>
+
+              <component
+                v-if="scope.row.attr.is === 'el-popover-select-v2'"
+                v-bind="scope.row.attr"
+                v-model="scope.row[item.key]"
+                :title="item.title"
+                :size="$attrs.size"
+                :source.sync="scope.row"
+                style="width: 100%"
+              ></component>
+
+              <component
+                v-if="scope.row.attr.is === 'el-popover-multiple-select-v2'"
+                v-bind="scope.row.attr"
+                v-model="scope.row[item.key]"
+                :title="item.title"
+                :size="$attrs.size"
+                :source.sync="scope.row"
+                style="width: 100%"
+              ></component>
+
+              <component
+                v-if="scope.row.attr.is === 'el-popover-tree-select'"
+                v-bind="scope.row.attr"
+                v-model="scope.row[item.key]"
+                :size="$attrs.size"
+                :source.sync="scope.row"
+                @change="$emit('submit')"
+                style="width: 100%"
+              >
+              </component>
+
+              <component
+                v-if="scope.row.attr.is === 'el-popover-multiple-tree-select'"
+                v-bind="scope.row.attr"
+                v-model="scope.row[item.key]"
+                :size="$attrs.size"
+                :source.sync="scope.row"
+                style="width: 100%"
+              >
+              </component>
+
+              <component
+                v-if="scope.row.attr.is === 'el-date-wrapper'"
+                v-bind="scope.row.attr"
+                v-model="scope.row[item.key]"
+                :size="$attrs.size"
+                :source.sync="scope.row"
+                style="width: 100%"
+              >
+              </component>
+
+              <component
+                v-if="scope.row.attr.is === 'el-input'"
+                v-bind="scope.row.attr"
+                :size="$attrs.size"
+                v-model="scope.row[item.key]"
+                style="width: 100%"
+              >
+              </component>
+            </template>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="50">
+          <template slot-scope="scope">
+            <i
+              class="el-icon-delete"
+              @click.prevent="onRowRemove(scope)"
+              style="cursor: pointer"
+            ></i>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-dialog>
+  </el-button>
+</template>
+
+<style scoped>
+/deep/.el-dialog__body {
+  padding: 0px 20px 20px;
+}
+</style>
+
+<style lang="scss" scoped>
+::v-deep.el-table::before {
+  display: none;
+}
+
+::v-deep.el-table {
+  th,
+  td,
+  th.is-leaf {
+    border: none;
+  }
+
+  .el-table__cell {
+    padding: 2px 0;
+  }
+  .popover-select-v2 .popover-select-v2_tags,
+  .popover-tree-select .popover-tree-select_tags {
+    left: 15px;
+  }
+  .el-scrollbar__view {
+    padding: 6px 0 0 3px !important;
+  }
+
+  .el-scrollbar__wrap {
+    overflow-x: hidden;
+    margin-right: -2px !important;
+  }
+}
+</style>