From 75954b2d3519560691726fd043b99737524491fb Mon Sep 17 00:00:00 2001
From: zuozhengqing <a13193816592@163.com>
Date: 星期一, 05 二月 2024 19:12:46 +0800
Subject: [PATCH] 合并dev

---
 src/views/productManage/product/components/bomDialog.vue |  360 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 360 insertions(+), 0 deletions(-)

diff --git a/src/views/productManage/product/components/bomDialog.vue b/src/views/productManage/product/components/bomDialog.vue
new file mode 100644
index 0000000..c350b0f
--- /dev/null
+++ b/src/views/productManage/product/components/bomDialog.vue
@@ -0,0 +1,360 @@
+<template>
+  <el-dialog
+    :close-on-click-modal="false"
+    :visible.sync="editDialogVisible"
+    width="33rem"
+    class="add-event-dialog"
+    @close="shutdown"
+    append-to-body
+  >
+    <div slot="title" class="tac drawerHeader">
+      <!-- {{ title }}缁勪欢 -->
+      缂栬緫涓嬫媺妗�>鍗曚綅
+    </div>
+    <div class="drawerContent">
+      <el-table
+        v-if="isTableShow"
+        :header-cell-style="{ background: '#f1f3f8', color: '#000009' }"
+        ref="multipleTable"
+        :data="BomTableData"
+        tooltip-effect="dark"
+        height="440"
+      >
+        <el-table-column prop="unit" label="鍗曚綅">
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.name"></el-input>
+          </template>
+        </el-table-column>
+        <el-table-column prop="createdAt" label="璁句负榛樿">
+          <template slot-scope="scope">
+            <el-switch
+              @change="switchChange(scope, scope.row.isDefault)"
+              v-model="scope.row.isDefault"
+            ></el-switch>
+          </template>
+        </el-table-column>
+        <!-- <el-table-column label="鎿嶄綔" width="100">
+          <template slot-scope="scope">
+            <i
+              class="el-icon-delete"
+              id="iconStyle"
+              @click="handleDelete(scope.row.id)"
+            ></i>
+          </template>
+        </el-table-column> -->
+      </el-table>
+      <el-button
+        @click="handleAdd()"
+        type="text"
+        class="margin_top_15px margin_left_20px"
+        >鏂板涓嬫媺妗�</el-button
+      >
+    </div>
+    <div slot="footer" class="dialog-footer tac">
+      <!-- <el-button
+        @click="handleAdd()"
+        style="margin-left: 16px; color: #fff; background-color: #ee790c"
+        >鏂板</el-button
+      > -->
+      <el-button @click="shutdown">鍙栨秷</el-button
+      ><el-button
+        type="primary"
+        @click="handleConfirmSave()"
+        style="margin-left: 16px; color: #fff; background-color: #2a78fb"
+        >纭畾</el-button
+      >
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { getCodeStandardList,addMaterial, updateMaterial  } from "@/api/basic/standard";
+
+export default {
+  name: "bomDialog",
+  props: {
+    title: {
+      type: String,
+    },
+    editRow: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+    workList: {
+      type: Array,
+    },
+  },
+  data() {
+    return {
+      editDialogVisible: false,
+      isTableShow: true,
+      form: {},
+      BomTableData: [1],
+      work: 1,
+      flag: "add",
+      obj: { name: "", page: 0, pageSize: 0, type: "鐗╂枡缂栫爜" },
+      inputValue: [],
+      codenumer: 0, //姣忔杈撳叆鐨勭紪鐮�
+      codenumberList: [], //鏁存潯缂栫爜
+      sum: 0,
+      explain: "",
+      Tabs: "msg",
+      tableData: [
+        {
+          date: "PEBU",
+          name: "PE甯�",
+          number: "21",
+          unit: "鍚�",
+        },
+      ],
+      rules: {
+        id: [{ required: true, message: "璇疯緭鍏ョ墿鏂欑紪鐮�", trigger: "blur" }],
+        name: [{ required: true, message: "璇疯緭鍏ョ墿鏂欏悕绉�", trigger: "blur" }],
+        specs: [{ required: true, message: "璇疯緭鍏ョ墿鏂欒鏍�", trigger: "blur" }],
+        type: [{ required: true, message: "璇疯緭鍏ョ墿鏂欏瀷鍙�", trigger: "blur" }],
+        amount: [
+          {
+            required: true,
+            message: "璇疯緭鍏ユ暟閲�",
+            trigger: "blur",
+          },
+        ],
+        unit: [
+          {
+            required: true,
+            message: "璇疯緭鍏ュ崟浣�",
+            trigger: "blur",
+          },
+        ],
+        model: [
+          { required: true, message: "璇烽�夋嫨鐗╂枡绫诲瀷", trigger: "change" },
+        ],
+      },
+    };
+  },
+  watch: {
+    editDialogVisible(newVal) {
+      if (newVal) {
+        this.BomTableData = this.workList;
+      }
+    },
+    workList(newVal) {
+      console.log(newVal)
+      this.BomTableData = this.workList;
+    },
+  },
+  mounted() {},
+  methods: {
+    handleAdd() {
+      this.BomTableData.push({ name: "", isDefault: false });
+    },
+    handleDelete(id) {
+      this.BomTableData = this.BomTableData.filter((i) => {
+        return i.id != id;
+      });
+    },
+    async getCodeStandardList() {
+      const res = await getCodeStandardList(this.obj);
+      this.codenumer = [];
+      this.sum = 0;
+      this.explain = "";
+      const { rules = [] } = res.data[0];
+      rules.forEach((item, index) => {
+        this.codenumer.push(item.length);
+        this.sum++;
+        // index - 1
+        //   ? (this.explain += item.name + "/")
+        //   : (this.explain += item.name);
+        this.explain += item.name + (index === rules.length - 1 ? "" : "/");
+      });
+      this.$forceUpdate();
+    },
+    codeList(val) {
+      console.log(val, "codeList");
+      this.inputValue = val;
+      this.codenumberList = val.toString();
+      console.log(this.codenumberList.replace(/,/g, ""));
+    },
+    switchChange(scope, val) {
+      let arr = [];
+      for (let i in this.BomTableData) {
+        if (this.BomTableData[i].isDefault) {
+          arr.push(i);
+        }
+      }
+      if (arr.length > 1) {
+        this.$message({
+          message: "鍙兘璁句竴涓负榛樿",
+          type: "warning",
+        });
+        scope.row.isDefault = !val;
+      }
+    },
+    handleConfirmSave() {
+      let arr = [];
+      for (let i in this.BomTableData) {
+        if (this.BomTableData[i].isDefault) {
+          arr.push(i);
+        }
+      }
+      if (arr.length > 1) {
+        this.$message({
+          message: "鍙兘璁句竴涓负榛樿",
+          type: "warning",
+        });
+      } else {
+        this.$emit("handleConfirmSave", this.BomTableData);
+      }
+    },
+    async validate() {
+      try {
+        if (this.flag == "add")
+          this.form.id = this.codenumberList.replace(/,/g, "");
+        this.form.explain = this.explain;
+        let fn = this.flag == "set" ? updateMaterial : addMaterial;
+        const res = await fn(this.form);
+        this.shutdown();
+        this.$sucessSet("sucessSet");
+        if (res.code == 200) {
+          this.$message({
+            message: this.flag == "set" ? "淇敼鎴愬姛锛�" : "娣诲姞鎴愬姛锛�",
+            type: "success",
+          });
+        }
+      } catch (err) {
+        console.log(err);
+        this.$message({
+          message: err.message.data.data,
+          type: "warning",
+        });
+      }
+    },
+    shutdown() {
+      this.editDialogVisible = false;
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.drawer {
+  z-index: 99;
+  border: 2px solid #ccc;
+  border-radius: 20px;
+  background: #fff;
+  width: 25vw !important;
+  height: 600px;
+  #iconStyle {
+    font-size: 20px !important;
+  }
+  .drawerContent {
+    position: relative;
+    overflow-y: auto;
+    padding: 12px 10px 0 10px;
+    padding-top: 12px;
+    margin: auto;
+    width: 25vw;
+    overflow-x: hidden;
+    height: 480px;
+    scrollbar-width: none; /* firefox */
+    -ms-overflow-style: none; /* IE 10+ */
+    ::v-deep .el-tabs__nav-scroll {
+      padding-left: 25px;
+    }
+    .baseTitle {
+      margin: 50px 0 20px;
+      font-weight: bold;
+    }
+    .baseInfo {
+      display: flex;
+    }
+  }
+  .drawerContent::-webkit-scrollbar {
+    display: none; /* Chrome Safari */
+  }
+}
+
+.drawerFooter {
+  margin-top: 16px;
+  margin-right: 20px;
+  text-align: right;
+  .el-button {
+    width: 80px;
+    height: 38px;
+    border-color: rgba(0, 0, 0, 0.1);
+    font-family: PingFangSC-Medium, sans-serif;
+    color: #000;
+  }
+}
+::v-deep .el-form {
+  width: 389px;
+  .input-box .input-content input {
+    margin: 0;
+    margin-right: 3px;
+  }
+  .el-input__inner,
+  .el-textarea__inner {
+    line-height: 18px;
+    font-family: PingFangSC;
+  }
+}
+::v-deep .el-tabs__header {
+  border: none;
+  .el-tabs__nav {
+    border: none;
+  }
+}
+::v-deep .el-form-item__content {
+  width: 263px;
+  .input-box {
+    width: 263px;
+  }
+}
+::v-deep .el-form-item__label {
+  font-size: 13px !important;
+  color: #000;
+  font-family: PingFangSC;
+  text-align: center !important;
+  width: 60px;
+}
+::v-deep .input-box .input-content input {
+  width: 23px;
+  height: 26px;
+  border-color: rgba(0, 0, 0, 0.1);
+  font-family: PingFangSC;
+}
+::v-deep .el-icon-minus {
+  width: 13px !important;
+  height: 26px !important;
+  line-height: 38px !important;
+  color: #e5e5e5;
+  font-size: 13px;
+}
+::v-deep .el-input__inner {
+  font-size: 13px !important;
+  color: rgba(0, 0, 0, 0.9);
+}
+::v-deep .el-input__inner::placeholder {
+  color: rgba(0, 0, 0, 0.4);
+}
+::v-deep .el-form-item__error {
+  font-family: PingFangSC;
+}
+.self {
+  ::v-deep .el-input__inner {
+  }
+}
+::v-deep .el-select-dropdown {
+  position: absolute !important;
+  top: 36px !important;
+  left: 0px !important;
+}
+::v-deep .el-select-dropdown__wrap {
+  overflow: auto !important;
+}
+::v-deep .el-dialog__body{
+  padding-bottom:10px!important;
+}
+</style>

--
Gitblit v1.8.0