Przeglądaj źródła

留样,消耗;

yijing 1 rok temu
rodzic
commit
8b10d82756

+ 9 - 0
src/api/samplemanagement/index.js

@@ -47,3 +47,12 @@ export async function getSampleSmallWhole(data) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+
+export async function getQualitySampleList(data) {
+  let par = new URLSearchParams(data);
+  const res = await request.get(`/qms/qualitysample/page?` + par, {});
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 77 - 0
src/views/sample/consume/components/baseInfo.vue

@@ -0,0 +1,77 @@
+<template>
+  <el-form ref="form1" :model="form"  label-width="120px">
+    <el-row>
+      <el-col :span="6">
+        <el-form-item label="编码:" prop="sampleCode">
+          <el-input clearable v-model="form.sampleCode" placeholder="请输入" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="6">
+        <el-form-item label="物品名称:" prop=" categoryName">
+          <el-input v-model="form.categoryName" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="6">
+        <el-form-item label="物品编码:" prop=" categoryCode">
+          <el-input v-model="form.categoryCode" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="6">
+        <el-form-item label="批次号:" prop=" batchNo">
+          <el-input v-model="form.batchNo" disabled />
+        </el-form-item>
+      </el-col>
+    </el-row>
+    <el-row>
+      <el-col :span="6">
+        <el-form-item label="规格:" prop=" specification">
+          <el-input v-model="form.specification" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="6">
+        <el-form-item label="型号:" prop=" modelType">
+          <el-input v-model="form.modelType" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="6">
+        <el-form-item label="牌号:" prop=" brandNo">
+          <el-input v-model="form.brandNo" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="6">
+        <el-form-item label="重量:" prop="weight">
+          <el-input type="number" v-model="form.weight" disabled/>
+        </el-form-item>
+      </el-col>
+    </el-row>
+  </el-form>
+</template>
+<script>
+//接口
+import { rules } from 'eslint-config-prettier';
+
+export default {
+  components: {
+  },
+  props: {
+    form: {
+      type: Object,
+      default: () => { }
+    },
+    btnType: {
+      type: String,
+      default: ''
+    }
+  },
+  watch: {},
+  data() {
+    return {
+    };
+  },
+  created() {
+  },
+  methods: {
+  }
+};
+</script>
+<style lang="scss" scoped></style>

+ 84 - 0
src/views/sample/consume/components/search.vue

@@ -0,0 +1,84 @@
+<!-- 搜索表单 -->
+6
+<template>
+  <el-form label-width="77px" class="ele-form-search" @keyup.enter.native="search" @submit.native.prevent>
+    <el-row :gutter="15">
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 8 } : { span: 4 }">
+        <el-form-item label="编码:">
+          <el-input clearable v-model="where.sampleCode" placeholder="请输入" />
+        </el-form-item>
+      </el-col>
+
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 8 } : { span: 4 }">
+        <el-form-item label="物品编码:">
+          <el-input clearable v-model="where.categoryCode" placeholder="请输入" />
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 8 } : { span: 4 }">
+        <el-form-item label="物品名称:">
+          <el-input clearable v-model="where.categoryName" placeholder="请输入" />
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 8 } : { span: 4 }">
+        <el-form-item label="样品状态:">
+          <el-select v-model="where.status" placeholder="请选择" style="width: 100%" clearable>
+            <el-option label="已处理" :value="1" />
+            <el-option label="未处理" :value="2" />
+          </el-select>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 8 } : { span: 4 }">
+        <el-form-item label="取样方式:">
+          <el-select v-model="where.conditionType" placeholder="请选择" style="width: 100%" clearable>
+            <el-option label="整样" :value="1" />
+            <el-option label="小样" :value="2" />
+          </el-select>
+        </el-form-item>
+      </el-col>
+      <el-col style="display: flex; justify-content: flex-end"
+        v-bind="styleResponsive ? { lg: 18, md: 6 } : { span: 12 }">
+        <div class="ele-form-actions">
+          <el-button type="primary" icon="el-icon-search" class="ele-btn-icon" @click="search">
+            查询
+          </el-button>
+          <el-button @click="reset">重置</el-button>
+        </div>
+      </el-col>
+    </el-row>
+  </el-form>
+</template>
+
+<script>
+export default {
+  data() {
+    // 默认表单数据
+    const defaultWhere = {
+      code: '',
+      produceTaskName: '',
+      deptIds: ''
+    };
+    return {
+      defaultWhere,
+      // 表单数据
+      where: { ...defaultWhere }
+    };
+  },
+  computed: {
+    // 是否开启响应式布局
+    styleResponsive() {
+      return this.$store.state.theme.styleResponsive;
+    }
+  },
+  methods: {
+    /* 搜索 */
+    search() {
+      this.$emit('search', this.where);
+    },
+    /*  重置 */
+    reset() {
+      this.where = { ...this.defaultWhere };
+      this.search();
+    }
+  }
+};
+</script>

+ 87 - 0
src/views/sample/consume/index.vue

@@ -0,0 +1,87 @@
+<template>
+    <div class="ele-body">
+        <el-card shadow="never">
+            <search ref="search" @search="reload"></search>
+            <ele-pro-table ref="table" :columns="columns" :datasource="datasource" :pageSize="20"
+                :pageSizes="[20, 30, 40, 50, 100]">
+                <!-- 表头工具栏 -->
+                <template v-slot:toolbar>
+
+                </template>
+
+                <template v-slot:sampleCode="{ row }">
+                    <el-link type="primary" :underline="false">
+                        {{ row.sampleCode }}
+                    </el-link>
+                </template>
+            </ele-pro-table>
+        </el-card>
+    </div>
+</template>
+<script>
+import search from './components/search.vue';
+
+import { getQualitySampleList } from '@/api/samplemanagement';
+
+import dictMixins from '@/mixins/dictMixins';
+
+export default {
+    mixins: [dictMixins],
+    components: {
+        search
+    },
+    data() {
+        return {
+            columns: [
+                { type: 'index', columnKey: 'index', align: 'center', label: '序号', width: 55, showOverflowTooltip: true },
+                { prop: 'sampleCode', slot: 'sampleCode', label: '编码', align: 'center', width: 160, showOverflowTooltip: true },
+                { prop: 'categoryCode', label: '物品编码', align: 'center', width: 160, showOverflowTooltip: true },
+                { prop: 'categoryName', label: '物品名称', align: 'center', width: 160, showOverflowTooltip: true },
+                { prop: 'specification', label: '规格', align: 'center', width: 100, showOverflowTooltip: true },
+                { prop: 'brandNum', label: '牌号', align: 'center', width: 100, showOverflowTooltip: true },
+                { prop: 'modelType', label: '型号', align: 'center', width: 160, showOverflowTooltip: true },
+                { prop: 'measureUnit', label: '计量单位', align: 'center', width: 100, showOverflowTooltip: true },
+                { prop: 'batchNo', label: '批次号', align: 'center', width: 100, showOverflowTooltip: true },
+                { prop: 'weight', label: '重量', align: 'center', width: 100, showOverflowTooltip: true },
+                { prop: 'weightUnit', label: '重量单位', align: 'center', width: 100, showOverflowTooltip: true },
+                { prop: 'disposeTime', label: '处置时间', align: 'center', width: 180, showOverflowTooltip: true },
+                {
+                    prop: 'status', label: '状态', align: 'center',
+                    formatter: (row, column, cellValue) => {
+                        return cellValue == 1 ? '已处置' : cellValue == 2 ? '未处置' : '';
+                    }
+                },
+            ]
+        };
+    },
+    created() {
+        // this.requestDict('取样类型');
+    },
+    methods: {
+        datasource({ page, where, limit }) {
+            where.disposalStatus = 7;
+            return getQualitySampleList({
+                ...where,
+                pageNum: page,
+                size: limit
+            });
+        },
+
+        reload(where) {
+            this.$refs.table.reload({ page: 1, where });
+        },
+        processingMethod(type, row) {
+            this.$router.push({
+                path: '/sample/samplemanagement/components/edit',
+                query: {
+                    type: type,
+                    qualityWorkOrderId: row.qualityWorkOrderId || '',
+                    id: row.id || '',
+                    qualityType: row.qualityType || ''
+                }
+            });
+            // this.$refs.edit.open(type, row)
+        },
+    }
+};
+</script>

+ 75 - 0
src/views/sample/keepSample/components/baseInfo.vue

@@ -0,0 +1,75 @@
+<template>
+  <el-form ref="form1" :model="form"  label-width="120px">
+    <el-row>
+      <el-col :span="6">
+        <el-form-item label="编码:" prop="sampleCode">
+          <el-input clearable v-model="form.sampleCode" placeholder="请输入" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="6">
+        <el-form-item label="物品名称:" prop=" categoryName">
+          <el-input v-model="form.categoryName" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="6">
+        <el-form-item label="物品编码:" prop=" categoryCode">
+          <el-input v-model="form.categoryCode" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="6">
+        <el-form-item label="批次号:" prop=" batchNo">
+          <el-input v-model="form.batchNo" disabled />
+        </el-form-item>
+      </el-col>
+    </el-row>
+    <el-row>
+      <el-col :span="6">
+        <el-form-item label="规格:" prop=" specification">
+          <el-input v-model="form.specification" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="6">
+        <el-form-item label="型号:" prop=" modelType">
+          <el-input v-model="form.modelType" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="6">
+        <el-form-item label="牌号:" prop=" brandNo">
+          <el-input v-model="form.brandNo" disabled />
+        </el-form-item>
+      </el-col>
+      <el-col :span="6">
+        <el-form-item label="重量:" prop="weight">
+          <el-input type="number" v-model="form.weight" disabled/>
+        </el-form-item>
+      </el-col>
+    </el-row>
+  </el-form>
+</template>
+<script>
+
+export default {
+  components: {
+  },
+  props: {
+    form: {
+      type: Object,
+      default: () => { }
+    },
+    btnType: {
+      type: String,
+      default: ''
+    }
+  },
+  watch: {},
+  data() {
+    return {
+    };
+  },
+  created() {
+  },
+  methods: {
+  }
+};
+</script>
+<style lang="scss" scoped></style>

+ 84 - 0
src/views/sample/keepSample/components/search.vue

@@ -0,0 +1,84 @@
+<!-- 搜索表单 -->
+6
+<template>
+  <el-form label-width="77px" class="ele-form-search" @keyup.enter.native="search" @submit.native.prevent>
+    <el-row :gutter="15">
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 8 } : { span: 4 }">
+        <el-form-item label="编码:">
+          <el-input clearable v-model="where.sampleCode" placeholder="请输入" />
+        </el-form-item>
+      </el-col>
+
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 8 } : { span: 4 }">
+        <el-form-item label="物品编码:">
+          <el-input clearable v-model="where.categoryCode" placeholder="请输入" />
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 8 } : { span: 4 }">
+        <el-form-item label="物品名称:">
+          <el-input clearable v-model="where.categoryName" placeholder="请输入" />
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 8 } : { span: 4 }">
+        <el-form-item label="样品状态:">
+          <el-select v-model="where.status" placeholder="请选择" style="width: 100%" clearable>
+            <el-option label="已处理" :value="1" />
+            <el-option label="未处理" :value="2" />
+          </el-select>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 8 } : { span: 4 }">
+        <el-form-item label="取样方式:">
+          <el-select v-model="where.conditionType" placeholder="请选择" style="width: 100%" clearable>
+            <el-option label="整样" :value="1" />
+            <el-option label="小样" :value="2" />
+          </el-select>
+        </el-form-item>
+      </el-col>
+      <el-col style="display: flex; justify-content: flex-end"
+        v-bind="styleResponsive ? { lg: 18, md: 18 } : { span: 18 }">
+        <div class="ele-form-actions">
+          <el-button type="primary" icon="el-icon-search" class="ele-btn-icon" @click="search">
+            查询
+          </el-button>
+          <el-button @click="reset">重置</el-button>
+        </div>
+      </el-col>
+    </el-row>
+  </el-form>
+</template>
+
+<script>
+export default {
+  data() {
+    // 默认表单数据
+    const defaultWhere = {
+      code: '',
+      produceTaskName: '',
+      deptIds: ''
+    };
+    return {
+      defaultWhere,
+      // 表单数据
+      where: { ...defaultWhere }
+    };
+  },
+  computed: {
+    // 是否开启响应式布局
+    styleResponsive() {
+      return this.$store.state.theme.styleResponsive;
+    }
+  },
+  methods: {
+    /* 搜索 */
+    search() {
+      this.$emit('search', this.where);
+    },
+    /*  重置 */
+    reset() {
+      this.where = { ...this.defaultWhere };
+      this.search();
+    }
+  }
+};
+</script>

+ 87 - 0
src/views/sample/keepSample/index.vue

@@ -0,0 +1,87 @@
+<template>
+    <div class="ele-body">
+        <el-card shadow="never">
+            <search ref="search" @search="reload"></search>
+            <ele-pro-table ref="table" :columns="columns" :datasource="datasource" :pageSize="20"
+                :pageSizes="[20, 30, 40, 50, 100]">
+                <!-- 表头工具栏 -->
+                <template v-slot:toolbar>
+
+                </template>
+
+                <template v-slot:sampleCode="{ row }">
+                    <el-link type="primary" :underline="false">
+                        {{ row.sampleCode }}
+                    </el-link>
+                </template>
+            </ele-pro-table>
+        </el-card>
+    </div>
+</template>
+<script>
+import search from './components/search.vue';
+
+import { getQualitySampleList } from '@/api/samplemanagement';
+
+import dictMixins from '@/mixins/dictMixins';
+
+export default {
+    mixins: [dictMixins],
+    components: {
+        search
+    },
+    data() {
+        return {
+            columns: [
+                { type: 'index', columnKey: 'index', align: 'center', label: '序号', width: 55, showOverflowTooltip: true },
+                { prop: 'sampleCode', slot: 'sampleCode', label: '编码', align: 'center', width: 160, showOverflowTooltip: true },
+                { prop: 'categoryCode', label: '物品编码', align: 'center', width: 160, showOverflowTooltip: true },
+                { prop: 'categoryName', label: '物品名称', align: 'center', width: 160, showOverflowTooltip: true },
+                { prop: 'specification', label: '规格', align: 'center', width: 100, showOverflowTooltip: true },
+                { prop: 'brandNum', label: '牌号', align: 'center', width: 100, showOverflowTooltip: true },
+                { prop: 'modelType', label: '型号', align: 'center', width: 160, showOverflowTooltip: true },
+                { prop: 'measureUnit', label: '计量单位', align: 'center', width: 100, showOverflowTooltip: true },
+                { prop: 'batchNo', label: '批次号', align: 'center', width: 100, showOverflowTooltip: true },
+                { prop: 'weight', label: '重量', align: 'center', width: 100, showOverflowTooltip: true },
+                { prop: 'weightUnit', label: '重量单位', align: 'center', width: 100, showOverflowTooltip: true },
+                { prop: 'disposeTime', label: '处置时间', align: 'center', width: 180, showOverflowTooltip: true },
+                {
+                    prop: 'status', label: '状态', align: 'center',
+                    formatter: (row, column, cellValue) => {
+                        return cellValue == 1 ? '已处置' : cellValue == 2 ? '未处置' : '';
+                    }
+                },
+            ]
+        };
+    },
+    created() {
+        // this.requestDict('取样类型');
+    },
+    methods: {
+        datasource({ page, where, limit }) {
+            where.disposalStatus = 6;
+            return getQualitySampleList({
+                ...where,
+                pageNum: page,
+                size: limit
+            });
+        },
+
+        reload(where) {
+            this.$refs.table.reload({ page: 1, where });
+        },
+        processingMethod(type, row) {
+            this.$router.push({
+                path: '/sample/samplemanagement/components/edit',
+                query: {
+                    type: type,
+                    qualityWorkOrderId: row.qualityWorkOrderId || '',
+                    id: row.id || '',
+                    qualityType: row.qualityType || ''
+                }
+            });
+            // this.$refs.edit.open(type, row)
+        },
+    }
+};
+</script>