Browse Source

提交样品和不良品处置新增留样数量

hezhanp 8 months ago
parent
commit
06ecfcd79a
3 changed files with 1283 additions and 1192 deletions
  1. 496 452
      src/views/sample/detailList.vue
  2. 484 437
      src/views/unacceptedProduct/detail.vue
  3. 303 303
      yarn.lock

+ 496 - 452
src/views/sample/detailList.vue

@@ -78,6 +78,7 @@
             v-model="disposeForm.disposeType"
             placeholder="请选择"
             style="width: 100%"
+            @change="disposeTypeChange"
           >
             <el-option
               v-for="item in sampleTypeList"
@@ -91,10 +92,29 @@
 
         <template v-if="disposeForm.disposeType == 6">
           <el-row>
+            <el-col :span="24">
+              <el-form-item
+                label="留样数量:"
+                prop="keepSampleQuantity"
+                align="center"
+              >
+                <el-input
+                  v-model="disposeForm.keepSampleQuantity"
+                  placeholder="请输入"
+                  style="width: 100%"
+                >
+                  <template slot="append">{{
+                    current?.measureUnit
+                  }}</template></el-input
+                >
+              </el-form-item>
+            </el-col>
+            <el-col :span="6"> </el-col>
+          </el-row>
+          <el-row style="margin-top: 12px">
             <el-col :span="24">
               <el-form-item label="留样日期:" prop="sampleDate" align="center">
                 <el-date-picker
-                  class="w100"
                   v-model="disposeForm.sampleDate"
                   type="date"
                   value-format="yyyy-MM-dd"
@@ -200,487 +220,511 @@
 </template>
 
 <script>
-  import { deepClone } from '@/utils';
-  import Edit from './components/edit.vue';
-  import { getWarehouseList } from '@/api/sample';
+import { deepClone } from '@/utils';
+import Edit from './components/edit.vue';
+import { getWarehouseList } from '@/api/sample';
 
-  import dictMixins from '@/mixins/dictMixins';
-  import { unacceptedProductStatus } from '@/utils/util';
+import dictMixins from '@/mixins/dictMixins';
+import { unacceptedProductStatus } from '@/utils/util';
 
-  import {
-    getDetail,
-    deleteUnacceptedProductDetail,
-    dispose,
-    removeSample
-  } from '@/api/sample';
+import {
+  getDetail,
+  deleteUnacceptedProductDetail,
+  dispose,
+  removeSample
+} from '@/api/sample';
 
-  import { saveData, updateData, getById, disposeApi } from '@/api/sample';
-  export default {
-    components: {
-      Edit
-    },
-    mixins: [dictMixins],
-    data() {
-      return {
-        dataList: [],
-        key: '',
-        response: {
-          dataName: 'sampleVOList'
-        },
-        warehouseList: [],
-        disposeForm: {
-          disposeType: '',
-          sampleCondition: '',
-          sampleDate: '',
-          samplePlace: '',
-          sampleRemark: '',
-          producerManufacturer: '',
-          depotId: '',
-          depotName: ''
-        },
-        id: '',
-        ids: [],
-        sampleType: '',
-        loading: false,
-        selection: [],
-        allSelectedData: [],
+import { saveData, updateData, getById, disposeApi } from '@/api/sample';
+export default {
+  components: {
+    Edit
+  },
+  mixins: [dictMixins],
+  data() {
+    return {
+      dataList: [],
+      key: '',
+      response: {
+        dataName: 'sampleVOList'
+      },
+      warehouseList: [],
+      disposeForm: {
         disposeType: '',
-        dialogVisible: false,
-        current: {},
-        formData: {},
-        all: false,
-        qualityType: null,
-        sampleTypeList: [
-          { value: 1, label: '返工' },
-          { value: 2, label: '返修' },
-          { value: 6, label: '留样' },
-          { value: 8, label: '归批/回用' },
-          { value: 3, label: '报废' },
-          { value: 10, label: '退货' },
-          { value: 7, label: '消耗' }
-        ],
-        rules: {
-          disposeType: [
-            { required: true, message: '请选择处置方式', trigger: 'change' }
-          ],
-          depotId: [
-            { required: true, message: '请选择仓库', trigger: 'change' }
-          ]
-        }
-      };
-    },
-    computed: {
-      showBtn() {
-        return !this.$route.query.type;
+        sampleCondition: '',
+        sampleDate: '',
+        samplePlace: '',
+        sampleRemark: '',
+        producerManufacturer: '',
+        depotId: '',
+        depotName: '',
+        keepSampleQuantity: ''
       },
-      // 表格列配置
-      columns() {
-        const arr = [
+      id: '',
+      ids: [],
+      sampleType: '',
+      loading: false,
+      selection: [],
+      allSelectedData: [],
+      disposeType: '',
+      dialogVisible: false,
+      current: {},
+      formData: {},
+      all: false,
+      qualityType: null,
+      sampleTypeList: [
+        { value: 1, label: '返工' },
+        { value: 2, label: '返修' },
+        { value: 6, label: '留样' },
+        { value: 8, label: '归批/回用' },
+        { value: 3, label: '报废' },
+        { value: 10, label: '退货' },
+        { value: 7, label: '消耗' }
+      ],
+      rules: {
+        disposeType: [
+          { required: true, message: '请选择处置方式', trigger: 'change' }
+        ],
+        depotId: [{ required: true, message: '请选择仓库', trigger: 'change' }],
+        keepSampleQuantity: [
           {
-            width: 45,
-            type: 'selection',
-            columnKey: 'selection',
-            selectable: (row, index) => {
-              return row.disposalStatus !== 2;
+            validator: (rule, value, callback) => {
+              if (
+                this.disposeForm.disposeType === 6 &&
+                this.current &&
+                this.current.measureQuantity !== undefined
+              ) {
+                const inputVal = Number(value);
+                const maxVal = Number(this.current.measureQuantity);
+                if (inputVal > maxVal) {
+                  return callback(new Error(`不能超过原计量数量${maxVal}`));
+                }
+              }
+              callback();
             },
-            align: 'center'
-          },
-          {
-            type: 'index',
-            columnKey: 'index',
-            align: 'center',
-            label: '序号',
-            width: 55,
-            showOverflowTooltip: true
-          },
-          {
-            label: '样品编码',
-            prop: 'sampleCode',
-            width: '150',
-            align: 'center',
-            showOverflowTooltip: true
-          },
-          {
-            label: '物品编码',
-            prop: 'categoryCode',
-            width: '150',
-            align: 'center',
-            showOverflowTooltip: true
-          },
-          {
-            label: '物品名称',
-            prop: 'categoryName',
-            width: '180',
-            align: 'center',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'batchNo',
-            label: '批次号',
-            align: 'center',
-            width: '120',
-            showOverflowTooltip: true
-          },
-          {
-            label: '规格',
-            prop: 'specification',
-            width: '120',
-            align: 'center',
-            showOverflowTooltip: true
-          },
-          {
-            label: '牌号',
-            prop: 'brandNum',
-            width: '120',
-            align: 'center',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'modelType',
-            label: '型号',
-            align: 'center',
-            width: '120',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'measureQuantity',
-            label: '计量数量',
-            align: 'center',
-            width: '120',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'measureUnit',
-            label: '计量单位',
-            align: 'center',
-            width: '120',
-            showOverflowTooltip: true
-          },
-
-          {
-            prop: 'weight',
-            label: '重量',
-            align: 'center',
-            width: '120',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'weightUnit',
-            label: '重量单位',
-            align: 'center',
-            width: '120',
-            showOverflowTooltip: true
-          },
-          // {
-          //   prop: 'disposeTime',
-          //   label: '处置时间',
-          //   align: 'center',
-          //   width: '180',
-          //   showOverflowTooltip: true
-          // },
-          {
-            prop: 'disposalStatus',
-            label: '处置状态',
-            align: 'center',
-            width: '120',
-            showOverflowTooltip: true,
-            formatter: (row, column, cellValue) => {
-              return this.disposalStatustList[cellValue ? cellValue : 0];
-            }
-          },
-          {
-            prop: 'disposeType',
-            label: '处置类型',
-            align: 'center',
-            width: '120',
-            showOverflowTooltip: true,
-            formatter: (row, column, cellValue) => {
-              return this.disposeTypeList[0][cellValue];
-            }
-          },
-          {
-            prop: 'qualityResults',
-            label: '质检结果',
-            align: 'center',
-            width: '120',
-            showOverflowTooltip: true,
-            formatter: (row, column, cellValue) => {
-              return this.qualityResultList[cellValue];
-            }
+            trigger: 'blur'
+          }
+        ]
+      }
+    };
+  },
+  computed: {
+    showBtn() {
+      return !this.$route.query.type;
+    },
+    // 表格列配置
+    columns() {
+      const arr = [
+        {
+          width: 45,
+          type: 'selection',
+          columnKey: 'selection',
+          selectable: (row, index) => {
+            return row.disposalStatus !== 2;
           },
+          align: 'center'
+        },
+        {
+          type: 'index',
+          columnKey: 'index',
+          align: 'center',
+          label: '序号',
+          width: 55,
+          showOverflowTooltip: true
+        },
+        {
+          label: '样品编码',
+          prop: 'sampleCode',
+          width: '150',
+          align: 'center',
+          showOverflowTooltip: true
+        },
+        {
+          label: '物品编码',
+          prop: 'categoryCode',
+          width: '150',
+          align: 'center',
+          showOverflowTooltip: true
+        },
+        {
+          label: '物品名称',
+          prop: 'categoryName',
+          width: '180',
+          align: 'center',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'batchNo',
+          label: '批次号',
+          align: 'center',
+          width: '120',
+          showOverflowTooltip: true
+        },
+        {
+          label: '规格',
+          prop: 'specification',
+          width: '120',
+          align: 'center',
+          showOverflowTooltip: true
+        },
+        {
+          label: '牌号',
+          prop: 'brandNum',
+          width: '120',
+          align: 'center',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'modelType',
+          label: '型号',
+          align: 'center',
+          width: '120',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'measureQuantity',
+          label: '计量数量',
+          align: 'center',
+          width: '120',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'measureUnit',
+          label: '计量单位',
+          align: 'center',
+          width: '120',
+          showOverflowTooltip: true
+        },
 
-          {
-            columnKey: 'action',
-            label: '操作',
-            align: 'center',
-            width: 180,
-            resizable: false,
-            slot: 'action',
-            fixed: 'right'
+        {
+          prop: 'weight',
+          label: '重量',
+          align: 'center',
+          width: '120',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'weightUnit',
+          label: '重量单位',
+          align: 'center',
+          width: '120',
+          showOverflowTooltip: true
+        },
+        // {
+        //   prop: 'disposeTime',
+        //   label: '处置时间',
+        //   align: 'center',
+        //   width: '180',
+        //   showOverflowTooltip: true
+        // },
+        {
+          prop: 'disposalStatus',
+          label: '处置状态',
+          align: 'center',
+          width: '120',
+          showOverflowTooltip: true,
+          formatter: (row, column, cellValue) => {
+            return this.disposalStatustList[cellValue ? cellValue : 0];
           }
-        ];
-
-        return this.$route.query.type ? arr.slice(0, -1) : arr;
-      },
-      seekList() {
-        return [
-          {
-            label: '编码:',
-            value: 'sampleCode',
-            type: 'input',
-            placeholder: ''
-          },
-          {
-            label: '物品编码:',
-            value: 'categoryCode',
-            type: 'input',
-            placeholder: ''
-          },
-          {
-            label: '物品名称:',
-            value: 'categoryName',
-            type: 'input',
-            placeholder: ''
+        },
+        {
+          prop: 'disposeType',
+          label: '处置类型',
+          align: 'center',
+          width: '120',
+          showOverflowTooltip: true,
+          formatter: (row, column, cellValue) => {
+            return this.disposeTypeList[0][cellValue];
           }
-        ];
-      },
-      disposeTypeList() {
-        return [
-          {
-            1: '返工',
-            2: '返修',
-            3: '报废',
-            4: '降级使用',
-            5: '让步接收',
-            6: '留样',
-            7: '消耗',
-            8: '回用',
-            9: '转试销',
-            10: '退货'
+        },
+        {
+          prop: 'qualityResults',
+          label: '质检结果',
+          align: 'center',
+          width: '120',
+          showOverflowTooltip: true,
+          formatter: (row, column, cellValue) => {
+            return this.qualityResultList[cellValue];
           }
-        ];
-      },
-      qualityResultList() {
-        return { 1: '合格', 2: '不合格' };
-      },
-      disposalStatustList() {
-        return { 0: '待处置', 1: '处置中', 2: '处置完成' };
-      }
-    },
+        },
 
-    watch: {
-      'disposeForm.disposeType': {
-        handler(newVal, oldVal) {
-          if (newVal == 6) {
-            this.rules.depotId = [];
-          } else {
-            this.rules.depotId = [
-              { required: true, message: '请选择仓库', trigger: 'change' }
-            ];
-          }
+        {
+          columnKey: 'action',
+          label: '操作',
+          align: 'center',
+          width: 180,
+          resizable: false,
+          slot: 'action',
+          fixed: 'right'
+        }
+      ];
 
-          this.disposeForm.sampleCondition = '';
-          this.disposeForm.sampleDate = '';
-          this.disposeForm.samplePlace = '';
-          this.disposeForm.sampleRemark = '';
-          this.disposeForm.producerManufacturer = '';
-          this.disposeForm.depotId = '';
-          this.disposeForm.depotName = '';
+      return this.$route.query.type ? arr.slice(0, -1) : arr;
+    },
+    seekList() {
+      return [
+        {
+          label: '编码:',
+          value: 'sampleCode',
+          type: 'input',
+          placeholder: ''
+        },
+        {
+          label: '物品编码:',
+          value: 'categoryCode',
+          type: 'input',
+          placeholder: ''
+        },
+        {
+          label: '物品名称:',
+          value: 'categoryName',
+          type: 'input',
+          placeholder: ''
         }
-      }
+      ];
+    },
+    disposeTypeList() {
+      return [
+        {
+          1: '返工',
+          2: '返修',
+          3: '报废',
+          4: '降级使用',
+          5: '让步接收',
+          6: '留样',
+          7: '消耗',
+          8: '回用',
+          9: '转试销',
+          10: '退货'
+        }
+      ];
     },
-    async created() {
-      this.getList();
-      this.warehouseList = await getWarehouseList();
-      this.qualityType = this.$route.query.qualityType;
+    qualityResultList() {
+      return { 1: '合格', 2: '不合格' };
     },
+    disposalStatustList() {
+      return { 0: '待处置', 1: '处置中', 2: '处置完成' };
+    }
+  },
 
-    methods: {
-      kk() {
-        console.log('fany');
-      },
-      handleSelectionChange(selection) {
-        console.log('choose');
+  watch: {
+    'disposeForm.disposeType': {
+      handler(newVal, oldVal) {
+        if (newVal == 6) {
+          this.rules.depotId = [];
+        } else {
+          this.rules.depotId = [
+            { required: true, message: '请选择仓库', trigger: 'change' }
+          ];
+        }
 
-        this.selection = selection;
-        // 更新所有选中的数据
-        this.allSelectedData = [
-          ...new Set([...this.allSelectedData, ...selection])
-        ];
-      },
-      handlePageChange() {
-        console.log('fan');
+        this.disposeForm.sampleCondition = '';
+        this.disposeForm.sampleDate = '';
+        this.disposeForm.samplePlace = '';
+        this.disposeForm.sampleRemark = '';
+        this.disposeForm.producerManufacturer = '';
+        this.disposeForm.depotId = '';
+        this.disposeForm.depotName = '';
+      }
+    }
+  },
+  async created() {
+    this.getList();
+    this.warehouseList = await getWarehouseList();
+    this.qualityType = this.$route.query.qualityType;
+  },
 
-        // 翻页时同步选中状态
-        const currentPageData = this.dataList;
-        const selectedOnCurrentPage = currentPageData.filter((item) =>
-          this.allSelectedData.some(
-            (selectedItem) => selectedItem.id === item.id
-          )
-        );
-        this.$refs.table.setSelectedRows(selectedOnCurrentPage);
-      },
-      chooseWarehouse(item) {
-        console.log(item);
-        this.disposeForm.depotId = item.id;
-        this.disposeForm.depotName = item.name;
-      },
-      async getList() {
-        let id = this.$route.query.id;
-        const arr = await getById(id);
-        this.dataList = arr.sampleVOList;
-      },
-      // /* 表格数据源 */
+  methods: {
+    disposeTypeChange() {
+      console.log(this.disposeForm.disposeType);
+      console.log(this.current.measureQuantity)
+      if (this.disposeForm.disposeType == 6) {
+        this.disposeForm.keepSampleQuantity =
+          this.current?.measureQuantity || '';
+      }
+    },
+    kk() {
+      console.log('fany');
+    },
+    handleSelectionChange(selection) {
+      console.log('choose');
 
-      async datasource({ page, where, limit }) {
-        let id = this.$route.query.id;
-        // where.id = this.$route.query.id;
-        const arr = await getById(id);
+      this.selection = selection;
+      // 更新所有选中的数据
+      this.allSelectedData = [
+        ...new Set([...this.allSelectedData, ...selection])
+      ];
+    },
+    handlePageChange() {
+      console.log('fan');
 
-        return arr.sampleVOList;
-      },
-      reload(where) {
-        console.log('reload');
-        this.key = Math.random();
-        this.$nextTick(() => {
-          // this.datasource();
-          // this.$refs.table.reRenderTable();
-          // this.getList()
-          // this.$refs.table.reload({ page: 1, where: where });
+      // 翻页时同步选中状态
+      const currentPageData = this.dataList;
+      const selectedOnCurrentPage = currentPageData.filter((item) =>
+        this.allSelectedData.some((selectedItem) => selectedItem.id === item.id)
+      );
+      this.$refs.table.setSelectedRows(selectedOnCurrentPage);
+    },
+    chooseWarehouse(item) {
+      console.log(item);
+      this.disposeForm.depotId = item.id;
+      this.disposeForm.depotName = item.name;
+    },
+    async getList() {
+      let id = this.$route.query.id;
+      const arr = await getById(id);
+      this.dataList = arr.sampleVOList;
+    },
+    // /* 表格数据源 */
+
+    async datasource({ page, where, limit }) {
+      let id = this.$route.query.id;
+      // where.id = this.$route.query.id;
+      const arr = await getById(id);
+
+      return arr.sampleVOList;
+    },
+    reload(where) {
+      console.log('reload');
+      this.key = Math.random();
+      this.$nextTick(() => {
+        // this.datasource();
+        // this.$refs.table.reRenderTable();
+        // this.getList()
+        // this.$refs.table.reload({ page: 1, where: where });
+      });
+    },
+    remove(row) {
+      let ids = row ? [row.id] : this.selection.map((item) => item.id);
+      removeSample(ids).then((res) => {
+        this.$message.success('删除' + res);
+        this.reload();
+        // 删除后更新 allSelectedData
+        this.allSelectedData = this.allSelectedData.filter(
+          (item) => !ids.includes(item.id)
+        );
+      });
+    },
+    close() {
+      this.$refs.disposeForm.resetFields();
+      this.dialogVisible = false;
+      this.disposeType = '';
+    },
+    // // 处置
+    disposeList(type, row) {
+      if (type == 1) {
+        this.all = true;
+        console.log(this.selection);
+      } else {
+        this.id = row.id;
+        this.current = row;
+        console.log(this.current, 'row');
+      }
+      this.formData = { ...row };
+      this.dialogVisible = true;
+      // let ids = this.current ? [this.current.id] : this.selection.map((item) => item.id);
+    },
+    async handleDispose() {
+      if (!this.formData.disposalStatus) {
+        return;
+      }
+      this.$refs.edit.open(
+        this.all ? this.selection : [this.current],
+        this.formData.disposalStatus
+      );
+      this.dialogVisible = false;
+    },
+    async save(data) {
+      if (data.data && data.data.length > 0) {
+        data.data.forEach((item) => {
+          item['fid'] = item.id || this.current.id;
         });
-      },
-      remove(row) {
-        let ids = row ? [row.id] : this.selection.map((item) => item.id);
-        removeSample(ids).then((res) => {
-          this.$message.success('删除' + res);
+      }
+      let ids =
+        data.type == 1 ? [this.current.id] : data.data.map((item) => item.id);
+      disposeApi({
+        disposeType: Number(data.type),
+        poList: data.data
+      })
+        .then((res) => {
+          console.log(res);
+          this.$message.success('处置成功!');
           this.reload();
-          // 删除后更新 allSelectedData
-          this.allSelectedData = this.allSelectedData.filter(
-            (item) => !ids.includes(item.id)
-          );
-        });
-      },
-      close() {
-        this.$refs.disposeForm.resetFields();
-        this.dialogVisible = false;
-        this.disposeType = '';
-      },
-      // // 处置
-      disposeList(type, row) {
-        if (type == 1) {
-          this.all = true;
-          console.log(this.selection);
-        } else {
-          this.id = row.id;
-          this.current = row;
-          console.log(this.current, 'row');
-        }
-        this.formData = { ...row };
-        this.dialogVisible = true;
-        // let ids = this.current ? [this.current.id] : this.selection.map((item) => item.id);
-      },
-      async handleDispose() {
-        if (!this.formData.disposalStatus) {
-          return;
-        }
-        this.$refs.edit.open(
-          this.all ? this.selection : [this.current],
-          this.formData.disposalStatus
-        );
-        this.dialogVisible = false;
-      },
-      async save(data) {
-        if (data.data && data.data.length > 0) {
-          data.data.forEach((item) => {
-            item['fid'] = item.id || this.current.id;
-          });
-        }
-        let ids =
-          data.type == 1 ? [this.current.id] : data.data.map((item) => item.id);
-        disposeApi({
-          disposeType: Number(data.type),
-          poList: data.data
         })
-          .then((res) => {
-            console.log(res);
-            this.$message.success('处置成功!');
-            this.reload();
-          })
-          .catch((err) => {
-            console.log(err);
-          });
-        this.dialogVisible = false;
-        this.current = null;
-      },
-      async consfirm() {
-        this.$refs['disposeForm'].validate(async (valid) => {
-          if (valid) {
-            let params = {
-              disposeType: this.disposeForm.disposeType,
-              poList: []
-            };
-            if (this.all) {
-              params.poList = this.selection.map((item) => {
-                return { ...item, ...this.disposeForm };
-              });
-            } else {
-              params.poList = [
-                { ...deepClone(this.current), ...this.disposeForm }
-              ];
-            }
-            console.log(params);
-            await disposeApi(params);
-            this.dialogVisible = false;
-            this.current = null;
-            this.$message.success('处置成功!');
-            this.reload();
-          }
-          return;
+        .catch((err) => {
+          console.log(err);
         });
-        return;
-
-        // if (this.disposeType == 6) {
-        //   this.$refs['disposeForm'].validate(async (valid) => {
-        //     if (valid) {
-        //       const pa = { ...deepClone(this.current), ...this.disposeForm };
-        //       const params = { disposeType: this.disposeType, poList: [pa] };
-        //       await disposeApi(params);
-        //       this.dialogVisible = false;
-        //       this.current = null;
-        //       this.$message.success('处置成功!');
-        //       this.reload();
-        //       return;
-        //     } else {
-        //       console.log('error submit!!');
-        //       return false;
-        //     }
-        //   });
-        //   return;
-        // }
-        this.$refs.edit.open(
-          this.all ? this.selection : [this.current],
-          this.disposeType
-        );
-        this.dialogVisible = false;
-      },
-      submitForm(formName) {
-        this.$refs[formName].validate((valid) => {
-          if (valid) {
-            alert('submit!');
+      this.dialogVisible = false;
+      this.current = null;
+    },
+    async consfirm() {
+      this.$refs['disposeForm'].validate(async (valid) => {
+        if (valid) {
+          let params = {
+            disposeType: this.disposeForm.disposeType,
+            poList: []
+          };
+          if (this.all) {
+            params.poList = this.selection.map((item) => {
+              return { ...item, ...this.disposeForm };
+            });
           } else {
-            console.log('error submit!!');
-            return false;
+            params.poList = [
+              { ...deepClone(this.current), ...this.disposeForm }
+            ];
           }
-        });
-      }
+          console.log(params);
+          await disposeApi(params);
+          this.dialogVisible = false;
+          this.current = null;
+          this.$message.success('处置成功!');
+          this.reload();
+        }
+        return;
+      });
+      return;
+
+      // if (this.disposeType == 6) {
+      //   this.$refs['disposeForm'].validate(async (valid) => {
+      //     if (valid) {
+      //       const pa = { ...deepClone(this.current), ...this.disposeForm };
+      //       const params = { disposeType: this.disposeType, poList: [pa] };
+      //       await disposeApi(params);
+      //       this.dialogVisible = false;
+      //       this.current = null;
+      //       this.$message.success('处置成功!');
+      //       this.reload();
+      //       return;
+      //     } else {
+      //       console.log('error submit!!');
+      //       return false;
+      //     }
+      //   });
+      //   return;
+      // }
+      this.$refs.edit.open(
+        this.all ? this.selection : [this.current],
+        this.disposeType
+      );
+      this.dialogVisible = false;
+    },
+    submitForm(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          alert('submit!');
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
     }
-  };
+  }
+};
 </script>
 
 <style lang="scss" scoped>
-  .unacceptedProductSelect {
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-  }
+.unacceptedProductSelect {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+}
 </style>

+ 484 - 437
src/views/unacceptedProduct/detail.vue

@@ -80,6 +80,7 @@
             v-model="disposeForm.disposeType"
             placeholder="请选择"
             style="width: 100%"
+            @change="disposeTypeChange"
           >
             <el-option
               v-for="item in disposeList"
@@ -112,6 +113,26 @@
 
         <template v-if="disposeForm.disposeType == 6">
           <el-row>
+            <el-col :span="24">
+              <el-form-item
+                label="留样数量:"
+                prop="keepSampleQuantity"
+                align="center"
+              >
+                <el-input
+                  v-model="disposeForm.keepSampleQuantity"
+                  placeholder="请输入"
+                  style="width: 100%"
+                >
+                  <template slot="append">{{
+                    current?.measureUnit
+                  }}</template></el-input
+                >
+              </el-form-item>
+            </el-col>
+            <el-col :span="6"> </el-col>
+          </el-row>
+          <el-row style="margin-top: 12px">
             <el-col :span="24">
               <el-form-item label="留样日期:" prop="sampleDate" align="center">
                 <el-date-picker
@@ -230,471 +251,497 @@
 </template>
 
 <script>
-  import OrderSearch from './components/detail-search.vue';
-  import Edit from './components/edit.vue';
-  import { getWarehouseLists } from '@/api/produce/index';
+import OrderSearch from './components/detail-search.vue';
+import Edit from './components/edit.vue';
+import { getWarehouseLists } from '@/api/produce/index';
 
-  import dictMixins from '@/mixins/dictMixins';
-  import { unacceptedProductStatus } from '@/utils/util';
-  import { deepClone } from '@/utils';
-  import { disposeApi, refluxTask } from '@/api/unacceptedProduct';
+import dictMixins from '@/mixins/dictMixins';
+import { unacceptedProductStatus } from '@/utils/util';
+import { deepClone } from '@/utils';
+import { disposeApi, refluxTask } from '@/api/unacceptedProduct';
 
-  import {
-    getDetail,
-    deleteUnacceptedProductDetail,
-    dispose,
-    getById
-  } from '@/api/unacceptedProduct/index';
-  export default {
-    components: {
-      OrderSearch,
-      Edit
-    },
-    mixins: [dictMixins],
-    data() {
-      return {
-        key: '',
-        warehouseList: [],
-        rules: {
-          disposeType: [
-            { required: true, message: '请选择处置方式', trigger: 'change' }
-          ],
-          depotId: [
-            { required: true, message: '请选择仓库', trigger: 'change' }
-          ]
-        },
-        disposeType: '',
-        disposeForm: {
-          disposeType: '',
-          sampleCondition: '',
-          sampleDate: '',
-          samplePlace: '',
-          sampleRemark: '',
-          producerManufacturer: '',
-          depotId: '',
-          depotName: '',
-          taskId: ''
-        },
-        loading: false,
-        selection: [],
-        dialogVisible: false,
-        current: {},
-        formData: {},
-        all: false,
-        qualityType: null,
-        allList: [
-          { value: 1, label: '返工' },
-          { value: 2, label: '返修' },
-          { value: 3, label: '报废' },
-          { value: 4, label: '降级使用' },
-          { value: 5, label: '让步接收' },
-          { value: 6, label: '留样' },
-          { value: 7, label: '消耗' },
-          { value: 8, label: '回用/归批' },
-          { value: 9, label: '转试销' },
-          { value: 10, label: '退货' }
+import {
+  getDetail,
+  deleteUnacceptedProductDetail,
+  dispose,
+  getById
+} from '@/api/unacceptedProduct/index';
+export default {
+  components: {
+    OrderSearch,
+    Edit
+  },
+  mixins: [dictMixins],
+  data() {
+    return {
+      key: '',
+      warehouseList: [],
+      rules: {
+        disposeType: [
+          { required: true, message: '请选择处置方式', trigger: 'change' }
         ],
-        //来料
-        disposalStatusListType: [
-          {
-            value: 5,
-            label: '让步接收'
-          },
-          {
-            value: 9,
-            label: '退货'
-          }
-        ],
-        //生产
-        disposalStatusList: [
-          {
-            value: 1,
-            label: '返工'
-          },
-          {
-            value: 2,
-            label: '返修'
-          },
-          {
-            value: 3,
-            label: '报废'
-          },
-          {
-            value: 4,
-            label: '降级使用'
-          },
-          {
-            value: 5,
-            label: '让步接收'
-          },
-          {
-            value: 6,
-            label: '留样'
-          },
-          {
-            value: 7,
-            label: '消耗'
-          },
+        depotId: [{ required: true, message: '请选择仓库', trigger: 'change' }],
+
+        keepSampleQuantity: [
           {
-            value: 8,
-            label: '回用'
+            validator: (rule, value, callback) => {
+              if (
+                this.disposeForm.disposeType === 6 &&
+                this.current &&
+                this.current.measureQuantity !== undefined
+              ) {
+                const inputVal = Number(value);
+                const maxVal = Number(this.current.measureQuantity);
+                if (inputVal > maxVal) {
+                  return callback(new Error(`不能超过原计量数量${maxVal}`));
+                }
+              }
+              callback();
+            },
+            trigger: 'blur'
           }
-        ],
-        refluxTaskList: []
-      };
-    },
-    computed: {
-      showBtn() {
-        return !this.$route.query.type;
+        ]
+      },
+      disposeType: '',
+      disposeForm: {
+        disposeType: '',
+        sampleCondition: '',
+        sampleDate: '',
+        samplePlace: '',
+        sampleRemark: '',
+        producerManufacturer: '',
+        depotId: '',
+        depotName: '',
+        taskId: '',
+        keepSampleQuantity: ''
       },
-      disposeList() {
-        if (this.$route.query.qualityType == 1) {
-          return this.allList.filter((item) => [5, 10].includes(item.value));
+      loading: false,
+      selection: [],
+      dialogVisible: false,
+      current: {},
+      formData: {},
+      all: false,
+      qualityType: null,
+      allList: [
+        { value: 1, label: '返工' },
+        { value: 2, label: '返修' },
+        { value: 3, label: '报废' },
+        { value: 4, label: '降级使用' },
+        { value: 5, label: '让步接收' },
+        { value: 6, label: '留样' },
+        { value: 7, label: '消耗' },
+        { value: 8, label: '回用/归批' },
+        { value: 9, label: '转试销' },
+        { value: 10, label: '退货' }
+      ],
+      //来料
+      disposalStatusListType: [
+        {
+          value: 5,
+          label: '让步接收'
+        },
+        {
+          value: 9,
+          label: '退货'
         }
-        if (
-          this.$route.query.qualityType == 2 ||
-          this.$route.query.qualityType == 3
-        ) {
-          return this.allList.filter(
-            (item) => item.value !== 8 && item.value !== 10
-          );
-        } else {
-          return this.allList;
+      ],
+      //生产
+      disposalStatusList: [
+        {
+          value: 1,
+          label: '返工'
+        },
+        {
+          value: 2,
+          label: '返修'
+        },
+        {
+          value: 3,
+          label: '报废'
+        },
+        {
+          value: 4,
+          label: '降级使用'
+        },
+        {
+          value: 5,
+          label: '让步接收'
+        },
+        {
+          value: 6,
+          label: '留样'
+        },
+        {
+          value: 7,
+          label: '消耗'
+        },
+        {
+          value: 8,
+          label: '回用'
         }
-      },
-      // 表格列配置
-      columns() {
-        const arr = [
-          {
-            width: 45,
-            type: 'selection',
-            columnKey: 'selection',
-            reserveSelection: true,
-            align: 'center',
-            selectable: (row, index) => {
-              return row.disposalStatus !== 2; //
-            }
-          },
-          {
-            columnKey: 'index',
-            label: '序号',
-            type: 'index',
-            width: 55,
-            align: 'center',
-            showOverflowTooltip: true,
-            fixed: 'left'
-          },
-          {
-            label: '样品编码',
-            prop: 'sampleCode',
-            width: '150',
-            align: 'center',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'categoryCode',
-            label: '物品编码',
-            width: '150',
-            align: 'center',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'categoryName',
-            label: '物品名称',
-            width: '150',
-            align: 'center',
-            showOverflowTooltip: true
-          },
-          {
-            label: '规格',
-            prop: 'specification',
-            width: '120',
-            align: 'center',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'brandNum',
-            label: '牌号',
-            align: 'center'
-          },
-          {
-            prop: 'modelType',
-            label: '型号',
-            align: 'center',
-            width: '120',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'batchNo',
-            label: '批次号',
-            align: 'center',
-            width: '120',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'weight',
-            label: '重量',
-            align: 'center',
-            width: '120',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'weightUnit',
-            label: '重量单位',
-            align: 'center',
-            width: '120',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'engrave',
-            label: '刻码',
-            align: 'center'
-          },
-          // {
-          //   prop: 'unqualifiedQuantity',
-          //   label: '数量',
-          //   align: 'center',
-          //   width: 60
-          // },
-          // { label: '包装数量', prop: 'packingQuantity', align: 'center' },
-          // { label: '包装单位', prop: 'packingUnit', align: 'center' },
-          { label: '计量数量', prop: 'measureQuantity', align: 'center' },
-          { label: '计量单位', prop: 'measureUnit', align: 'center' },
-          // { label: '物料代号', prop: 'materielDesignation', align: 'center' },
-          // { label: '客户代号', prop: 'clientCode', align: 'center' },
-          {
-            prop: 'produceRoutingName',
-            label: '工艺路线',
-            align: 'center'
-          },
-          {
-            prop: 'produceTaskName',
-            label: '工序',
-            align: 'center'
-          },
-          {
-            prop: 'unqualifiedReason',
-            label: '原因',
-            align: 'center'
-          },
-          {
-            prop: 'disposeTime',
-            label: '处置时间',
-            align: 'center',
-            width: '180',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'disposalStatus',
-            label: '处置状态',
-            align: 'center',
-            width: '120',
-            showOverflowTooltip: true,
-            formatter: (row, column, cellValue) => {
-              return this.disposalStatustList[cellValue ? cellValue : 0];
-            }
-          },
-          {
-            prop: 'disposeType',
-            label: '处置类型',
-            align: 'center',
-            width: '120',
-            showOverflowTooltip: true,
-            formatter: (row, column, cellValue) => {
-              console.log(this.allList.find((item) => item.value == cellValue));
-
-              return this.allList.find((item) => item.value == cellValue)
-                ?.label;
-            }
-          },
-
-          // {
-          //   prop: 'type',
-          //   label: '处置类型',
-          //   align: 'center',
-          //   // slot: 'SlottingType'
-          //   formatter: (row, column, cellValue) => {
-          //     return this.getDictValue('不良品处理类型', cellValue + '');
-          //   }
-          // },
-          // {
-          //   prop: 'status',
-          //   label: '状态',
-          //   align: 'center',
-          //   formatter: (row, column, cellValue) => {
-          //     return unacceptedProductStatus(cellValue);
-          //   }
-          // },
-
-          {
-            columnKey: 'action',
-            label: '操作',
-            width: 150,
-            align: 'center',
-            resizable: false,
-            fixed: 'right',
-            slot: 'action',
-            showOverflowTooltip: true
-          }
-        ];
-        return this.$route.query.type ? arr.slice(0, -1) : arr;
-      },
-      disposalStatustList() {
-        return { 0: '待处置', 1: '处置中', 2: '处置完成' };
-      }
+      ],
+      refluxTaskList: []
+    };
+  },
+  computed: {
+    showBtn() {
+      return !this.$route.query.type;
     },
-    async created() {
-      this.qualityType = this.$route.query.qualityType;
-      this.warehouseList = await getWarehouseLists();
-      if (this.$route.query.workOrderCode) {
-        this.getRefluxTask();
+    disposeList() {
+      if (this.$route.query.qualityType == 1) {
+        return this.allList.filter((item) => [5, 10].includes(item.value));
+      }
+      if (
+        this.$route.query.qualityType == 2 ||
+        this.$route.query.qualityType == 3
+      ) {
+        return this.allList.filter(
+          (item) => item.value !== 8 && item.value !== 10
+        );
+      } else {
+        return this.allList;
       }
-
-      // console.log(this.warehouseList, 'this.warehouseList');
     },
+    // 表格列配置
+    columns() {
+      const arr = [
+        {
+          width: 45,
+          type: 'selection',
+          columnKey: 'selection',
+          reserveSelection: true,
+          align: 'center',
+          selectable: (row, index) => {
+            return row.disposalStatus !== 2; //
+          }
+        },
+        {
+          columnKey: 'index',
+          label: '序号',
+          type: 'index',
+          width: 55,
+          align: 'center',
+          showOverflowTooltip: true,
+          fixed: 'left'
+        },
+        {
+          label: '样品编码',
+          prop: 'sampleCode',
+          width: '150',
+          align: 'center',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'categoryCode',
+          label: '物品编码',
+          width: '150',
+          align: 'center',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'categoryName',
+          label: '物品名称',
+          width: '150',
+          align: 'center',
+          showOverflowTooltip: true
+        },
+        {
+          label: '规格',
+          prop: 'specification',
+          width: '120',
+          align: 'center',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'brandNum',
+          label: '牌号',
+          align: 'center'
+        },
+        {
+          prop: 'modelType',
+          label: '型号',
+          align: 'center',
+          width: '120',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'batchNo',
+          label: '批次号',
+          align: 'center',
+          width: '120',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'weight',
+          label: '重量',
+          align: 'center',
+          width: '120',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'weightUnit',
+          label: '重量单位',
+          align: 'center',
+          width: '120',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'engrave',
+          label: '刻码',
+          align: 'center'
+        },
+        // {
+        //   prop: 'unqualifiedQuantity',
+        //   label: '数量',
+        //   align: 'center',
+        //   width: 60
+        // },
+        // { label: '包装数量', prop: 'packingQuantity', align: 'center' },
+        // { label: '包装单位', prop: 'packingUnit', align: 'center' },
+        { label: '计量数量', prop: 'measureQuantity', align: 'center' },
+        { label: '计量单位', prop: 'measureUnit', align: 'center' },
+        // { label: '物料代号', prop: 'materielDesignation', align: 'center' },
+        // { label: '客户代号', prop: 'clientCode', align: 'center' },
+        {
+          prop: 'produceRoutingName',
+          label: '工艺路线',
+          align: 'center'
+        },
+        {
+          prop: 'produceTaskName',
+          label: '工序',
+          align: 'center'
+        },
+        {
+          prop: 'unqualifiedReason',
+          label: '原因',
+          align: 'center'
+        },
+        {
+          prop: 'disposeTime',
+          label: '处置时间',
+          align: 'center',
+          width: '180',
+          showOverflowTooltip: true
+        },
+        {
+          prop: 'disposalStatus',
+          label: '处置状态',
+          align: 'center',
+          width: '120',
+          showOverflowTooltip: true,
+          formatter: (row, column, cellValue) => {
+            return this.disposalStatustList[cellValue ? cellValue : 0];
+          }
+        },
+        {
+          prop: 'disposeType',
+          label: '处置类型',
+          align: 'center',
+          width: '120',
+          showOverflowTooltip: true,
+          formatter: (row, column, cellValue) => {
+            console.log(this.allList.find((item) => item.value == cellValue));
 
-    methods: {
-      // /* 表格数据源 */
-      async datasource({ page, where, limit }) {
-        let id = this.$route.query.id;
-        const arr = await getById(id);
-        // where.unqualifiedProductsId = this.$route.query.id;
-        return arr.poList;
-      },
+            return this.allList.find((item) => item.value == cellValue)?.label;
+          }
+        },
 
-      async getRefluxTask() {
-        await refluxTask({
-          workOrderCode: this.$route.query.workOrderCode
-        }).then((res) => {
-          this.refluxTaskList = res;
-        });
-      },
+        // {
+        //   prop: 'type',
+        //   label: '处置类型',
+        //   align: 'center',
+        //   // slot: 'SlottingType'
+        //   formatter: (row, column, cellValue) => {
+        //     return this.getDictValue('不良品处理类型', cellValue + '');
+        //   }
+        // },
+        // {
+        //   prop: 'status',
+        //   label: '状态',
+        //   align: 'center',
+        //   formatter: (row, column, cellValue) => {
+        //     return unacceptedProductStatus(cellValue);
+        //   }
+        // },
 
-      reload(where) {
-        this.key = Math.random();
-        // this.$nextTick(() => {
-        //   if (this.$refs.searchRef && this.$refs.searchRef.reload)
-        //     this.$refs.searchRef.reload({ page: 1, where: where });
-        // });
-      },
-      remove(row) {
-        let ids = row ? [row.id] : this.selection.map((item) => item.id);
-        deleteUnacceptedProductDetail(ids).then((res) => {
-          this.$message.success('删除' + res);
-          this.getList();
-        });
-      },
-      close() {
-        this.$refs.disposeForm.resetFields();
-        this.dialogVisible = false;
-        this.disposeType = '';
-        this.all = false;
-        this.formData.disposalStatus = '';
-      },
-      // // 处置
-      disposeFn(type, row) {
-        if (type == 1) {
-          this.all = true;
-        } else {
-          this.current = row;
-          console.log(this.current, 'row');
+        {
+          columnKey: 'action',
+          label: '操作',
+          width: 150,
+          align: 'center',
+          resizable: false,
+          fixed: 'right',
+          slot: 'action',
+          showOverflowTooltip: true
         }
-        this.formData = { ...row };
-        this.dialogVisible = true;
-        // let ids = this.current ? [this.current.id] : this.selection.map((item) => item.id);
-      },
-      async handleDispose() {
-        this.$refs['disposeForm'].validate(async (valid) => {
-          if (valid) {
-            let params = {
-              disposeType: this.disposeForm.disposeType,
-              poList: [],
-              refluxTask: null
-            };
-            if (this.all) {
-              params.poList = this.selection.map((item) => {
-                return { ...item, ...this.disposeForm };
-              });
-            } else {
-              params.poList = [
-                { ...deepClone(this.current), ...this.disposeForm }
-              ];
-            }
+      ];
+      return this.$route.query.type ? arr.slice(0, -1) : arr;
+    },
+    disposalStatustList() {
+      return { 0: '待处置', 1: '处置中', 2: '处置完成' };
+    }
+  },
+  async created() {
+    this.qualityType = this.$route.query.qualityType;
+    this.warehouseList = await getWarehouseLists();
+    if (this.$route.query.workOrderCode) {
+      this.getRefluxTask();
+    }
+
+    // console.log(this.warehouseList, 'this.warehouseList');
+  },
 
-            if (this.disposeForm.taskId) {
-              params.refluxTask = this.refluxTaskList.find(
-                (item) => item.taskId == this.disposeForm.taskId
-              );
-            }
+  methods: {
+    disposeTypeChange() {
+      console.log(this.disposeForm.disposeType);
+      console.log(this.current.measureQuantity)
+      if (this.disposeForm.disposeType == 6) {
+        this.disposeForm.keepSampleQuantity =
+          this.current?.measureQuantity || '';
+      }
+    },
+    // /* 表格数据源 */
+    async datasource({ page, where, limit }) {
+      let id = this.$route.query.id;
+      const arr = await getById(id);
+      // where.unqualifiedProductsId = this.$route.query.id;
+      return arr.poList;
+    },
 
-            console.log(params);
-            await disposeApi(params);
-            this.dialogVisible = false;
-            this.current = null;
-            this.$message.success('处置成功!');
-            this.reload();
-            return;
+    async getRefluxTask() {
+      await refluxTask({
+        workOrderCode: this.$route.query.workOrderCode
+      }).then((res) => {
+        this.refluxTaskList = res;
+      });
+    },
+
+    reload(where) {
+      this.key = Math.random();
+      // this.$nextTick(() => {
+      //   if (this.$refs.searchRef && this.$refs.searchRef.reload)
+      //     this.$refs.searchRef.reload({ page: 1, where: where });
+      // });
+    },
+    remove(row) {
+      let ids = row ? [row.id] : this.selection.map((item) => item.id);
+      deleteUnacceptedProductDetail(ids).then((res) => {
+        this.$message.success('删除' + res);
+        this.getList();
+      });
+    },
+    close() {
+      this.$refs.disposeForm.resetFields();
+      this.dialogVisible = false;
+      this.disposeType = '';
+      this.all = false;
+      this.formData.disposalStatus = '';
+    },
+    // // 处置
+    disposeFn(type, row) {
+      if (type == 1) {
+        this.all = true;
+      } else {
+        this.current = row;
+        console.log(this.current, 'row');
+      }
+      this.formData = { ...row };
+      this.dialogVisible = true;
+      // let ids = this.current ? [this.current.id] : this.selection.map((item) => item.id);
+    },
+    async handleDispose() {
+      this.$refs['disposeForm'].validate(async (valid) => {
+        if (valid) {
+          let params = {
+            disposeType: this.disposeForm.disposeType,
+            poList: [],
+            refluxTask: null
+          };
+          if (this.all) {
+            params.poList = this.selection.map((item) => {
+              return { ...item, ...this.disposeForm };
+            });
           } else {
-            return false;
+            params.poList = [
+              { ...deepClone(this.current), ...this.disposeForm }
+            ];
           }
-          return;
-        });
 
-        return;
-      },
-      validate() {},
-      async save(data) {
-        if (data.data && data.data.length > 0) {
-          data.data.forEach((item) => {
-            item['fid'] = item.id || this.current.id;
-          });
+          if (this.disposeForm.taskId) {
+            params.refluxTask = this.refluxTaskList.find(
+              (item) => item.taskId == this.disposeForm.taskId
+            );
+          }
+
+          console.log(params);
+          await disposeApi(params);
+          this.dialogVisible = false;
+          this.current = null;
+          this.$message.success('处置成功!');
+          this.reload();
+          return;
+        } else {
+          return false;
         }
-        let ids =
-          data.type == 1 ? [this.current.id] : data.data.map((item) => item.id);
-        await dispose({
-          id: ids,
-          disposeType: Number(data.type),
-          poList: data.data
+        return;
+      });
+
+      return;
+    },
+    validate() {},
+    async save(data) {
+      if (data.data && data.data.length > 0) {
+        data.data.forEach((item) => {
+          item['fid'] = item.id || this.current.id;
         });
-        this.dialogVisible = false;
-        this.current = null;
-        this.$message.success('处置成功!');
-        this.reload();
-      },
-      chooseWarehouse(item) {
-        console.log(item);
-        this.disposeForm.depotId = item.id;
-        this.disposeForm.depotName = item.name;
       }
+      let ids =
+        data.type == 1 ? [this.current.id] : data.data.map((item) => item.id);
+      await dispose({
+        id: ids,
+        disposeType: Number(data.type),
+        poList: data.data
+      });
+      this.dialogVisible = false;
+      this.current = null;
+      this.$message.success('处置成功!');
+      this.reload();
     },
-    watch: {
-      'disposeForm.disposeType': {
-        handler(newVal, oldVal) {
-          if (newVal == 6) {
-            this.rules.depotId = [];
-          } else {
-            this.rules.depotId = [
-              { required: true, message: '请选择仓库', trigger: 'change' }
-            ];
-          }
-          this.disposeForm.sampleCondition = '';
-          this.disposeForm.sampleDate = '';
-          this.disposeForm.samplePlace = '';
-          this.disposeForm.sampleRemark = '';
-          this.disposeForm.producerManufacturer = '';
-          this.disposeForm.depotId = '';
-          this.disposeForm.depotName = '';
-          this.disposeForm.taskId = '';
+    chooseWarehouse(item) {
+      console.log(item);
+      this.disposeForm.depotId = item.id;
+      this.disposeForm.depotName = item.name;
+    }
+  },
+  watch: {
+    'disposeForm.disposeType': {
+      handler(newVal, oldVal) {
+        if (newVal == 6) {
+          this.rules.depotId = [];
+        } else {
+          this.rules.depotId = [
+            { required: true, message: '请选择仓库', trigger: 'change' }
+          ];
         }
+        this.disposeForm.sampleCondition = '';
+        this.disposeForm.sampleDate = '';
+        this.disposeForm.samplePlace = '';
+        this.disposeForm.sampleRemark = '';
+        this.disposeForm.producerManufacturer = '';
+        this.disposeForm.depotId = '';
+        this.disposeForm.depotName = '';
+        this.disposeForm.taskId = '';
       }
     }
-  };
+  }
+};
 </script>
 
 <style lang="scss" scoped>
-  .unacceptedProductSelect {
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-  }
+.unacceptedProductSelect {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+}
 </style>

File diff suppressed because it is too large
+ 303 - 303
yarn.lock


Some files were not shown because too many files changed in this diff