ysy 1 год назад
Родитель
Сommit
a48d6d92cc

+ 23 - 0
src/api/emiFinished/index.js

@@ -0,0 +1,23 @@
+import request from '@/utils/request';
+
+
+/**
+ * 列表
+ */
+export async function getList(data) {
+  const res = await request.get('/mes/semiproduct/page', {params:data});
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+
+//删除
+export async function deleteLine(data) {
+  const res = await request.delete('/mes/semiproduct/delete', {data});
+  if (res.data.code == 0) {
+    return res.data.message;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 23 - 0
src/api/sample/index.js

@@ -0,0 +1,23 @@
+import request from '@/utils/request';
+
+
+/**
+ * 列表
+ */
+export async function getList(data) {
+  const res = await request.get('/mes/sample/page', {params:data});
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+
+//删除
+export async function deleteLine(data) {
+  const res = await request.delete('/mes/sample/delete', {data});
+  if (res.data.code == 0) {
+    return res.data.message;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 106 - 0
src/views/emiFinished/components/search.vue

@@ -0,0 +1,106 @@
+<!-- 搜索表单 -->
+<template>
+    <el-form
+      label-width="90px"
+      class="ele-form-search"
+      @keyup.enter.native="search"
+      @submit.native.prevent
+    >
+      <el-row :gutter="15">
+        <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+          <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: 12 } : { span: 6 }">
+          <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: 12 } : { span: 6 }">
+          <el-form-item label="产品规格:">
+            <el-input
+              clearable
+              v-model="where.specification"
+              placeholder="请输入"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+          <el-form-item label="组织机构:">
+            <auth-selection data-type="Array" v-model="where.deptIds" style="width: 100%"></auth-selection>
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+          <el-form-item label-width="0px">
+            <el-button
+              type="primary"
+              icon="el-icon-search"
+              class="ele-btn-icon"
+              @click="search"
+            >
+              查询
+            </el-button>
+            <el-button @click="reset" icon="el-icon-refresh-left" type="primary"
+              >重置</el-button
+            >
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+  </template>
+  
+  <script>
+  export default {
+    props: [],
+    data() {
+      // 默认表单数据
+      const defaultWhere = {
+        categoryName: '',
+        categoryCode: '',
+        specification: '',
+        deptIds: [],
+      };
+      return {
+        // 表单数据
+        where: { ...defaultWhere },
+      };
+    },
+    computed: {
+      // 是否开启响应式布局
+      styleResponsive() {
+        return this.$store.state.theme.styleResponsive;
+      }
+    },
+    watch: {},
+    created() {},
+    methods: {
+      /* 搜索 */
+      search() {
+        const where = { ...this.where };
+        this.$emit('search', where);
+      },
+      /*  重置 */
+      reset() {
+        this.where = { ...this.defaultWhere };
+        this.search();
+      }
+    }
+  };
+  </script>
+  <style lang="scss" scoped>
+  .ele-form-actions {
+    display: flex;
+    align-items: center;
+    justify-content: flex-end;
+  }
+  </style>
+  

+ 165 - 0
src/views/emiFinished/index.vue

@@ -0,0 +1,165 @@
+<template>
+    <div class="ele-body">
+      <el-card shadow="never" v-loading="loading">
+        <order-search @search="reload" ref="searchRef"> </order-search>
+        <ele-pro-table
+          ref="table"
+          :columns="columns"
+          :datasource="datasource"
+          :selection.sync="selection"
+        >
+          <template v-slot:action="{ row }">
+            <el-popconfirm
+              class="ele-action"
+              title="确定要删除吗?"
+              @confirm="remove(row)"
+            >
+              <template v-slot:reference>
+                <el-link type="danger" :underline="false" icon="el-icon-delete">
+                  删除
+                </el-link>
+              </template>
+            </el-popconfirm>
+          </template>
+        </ele-pro-table>
+      </el-card>
+    </div>
+  </template>
+  
+  <script>
+  import OrderSearch from './components/search.vue';
+  import dictMixins from '@/mixins/dictMixins';
+  
+  import { deleteLine,getList } from '@/api/emiFinished/index';
+  export default {
+    components: {
+      OrderSearch
+    },
+    mixins: [dictMixins],
+    data() {
+      return {
+        loading: false,
+        dialogVisible: false,
+        current: null,
+        selection: [],
+      };
+    },
+    computed: {
+      // 表格列配置
+      columns() {
+        return [
+          {
+            columnKey: 'index',
+            label: '序号',
+            type: 'index',
+            width: 55,
+            align: 'center',
+            showOverflowTooltip: true,
+            fixed: 'left'
+          },
+          {
+            prop: 'categoryCode',
+            width: 160,
+            label: '编码',
+            align: 'center'
+          },
+          {
+            prop: 'categoryName',
+            label: '物品名称',
+            align: 'center'
+          },
+          {
+            prop: 'categoryLevelName',
+            label: '分类名称',
+            align: 'center'
+          },
+          {
+            prop: 'feedQuantity',
+            label: '物品数量',
+            align: 'center'
+          },
+          {
+            prop: 'modelType',
+            label: '型号',
+            align: 'center'
+          },
+       
+          {
+            prop: 'packingUnit',
+            label: '包装单位',
+            align: 'center'
+          },
+          {
+            prop: 'produceRoutingName',
+            label: '工艺路线名称',
+            align: 'center'
+          },
+          {
+            prop: 'rootCategoryLevelName',
+            label: '物品根级分类名称',
+            align: 'center'
+          },
+          {
+            prop: 'specification',
+            label: '规格',
+            align: 'center',
+            width: 60
+          },
+          {
+            prop: 'unit',
+            label: '计量单位',
+            align: 'center'
+          },
+  
+          {
+            prop: 'createTime',
+            label: '创建时间',
+            align: 'center',
+            width: 160
+          },
+  
+          {
+            columnKey: 'action',
+            label: '操作',
+            width: 100,
+            align: 'center',
+            resizable: false,
+            fixed: 'right',
+            slot: 'action',
+            showOverflowTooltip: true
+          }
+        ];
+      }
+    },
+    created() {},
+    filters: {},
+    methods: {
+      /* 表格数据源 */
+      datasource({ page, limit, where }) {
+        return getList({
+          pageNum: page,
+          size: limit,
+          ...where
+        });
+
+
+      },
+      remove(row) {
+        let ids = row ? [row.id] : this.selection.map((item) => item.id);
+        deleteLine(ids).then((res) => {
+          this.$message.success('删除' + res);
+          this.reload();
+        });
+      },
+      /* 刷新表格 */
+      reload(where) {
+        this.$nextTick(() => {
+          this.$refs.table.reload({ page: 1, where });
+        });
+      }
+    }
+  };
+  </script>
+  
+  <style lang="scss" scoped></style>
+  

+ 116 - 0
src/views/sample/components/search.vue

@@ -0,0 +1,116 @@
+<!-- 搜索表单 -->
+<template>
+    <el-form
+      label-width="90px"
+      class="ele-form-search"
+      @keyup.enter.native="search"
+      @submit.native.prevent
+    >
+      <el-row :gutter="15">
+        <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+          <el-form-item label="物品名称:">
+            <el-input
+              clearable
+              v-model="where.name"
+              placeholder="请输入"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+          <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: 12 } : { span: 6 }">
+          <el-form-item label="设备名称:">
+            <el-input
+              clearable
+              v-model="where.deviceName"
+              placeholder="请输入"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+          <el-form-item label="产品规格:">
+            <el-input
+              clearable
+              v-model="where.specification"
+              placeholder="请输入"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+          <el-form-item label="组织机构:">
+            <auth-selection data-type="Array" v-model="where.deptIds" style="width: 100%"></auth-selection>
+          </el-form-item>
+        </el-col>
+        <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+          <el-form-item label-width="0px">
+            <el-button
+              type="primary"
+              icon="el-icon-search"
+              class="ele-btn-icon"
+              @click="search"
+            >
+              查询
+            </el-button>
+            <el-button @click="reset" icon="el-icon-refresh-left" type="primary"
+              >重置</el-button
+            >
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+  </template>
+  
+  <script>
+  export default {
+    props: [],
+    data() {
+      // 默认表单数据
+      const defaultWhere = {
+        name: '',
+        deviceName: '',
+        categoryCode: '',
+        specification: '',
+        deptIds: [],
+      };
+      return {
+        // 表单数据
+        where: { ...defaultWhere },
+      };
+    },
+    computed: {
+      // 是否开启响应式布局
+      styleResponsive() {
+        return this.$store.state.theme.styleResponsive;
+      }
+    },
+    watch: {},
+    created() {},
+    methods: {
+      /* 搜索 */
+      search() {
+        const where = { ...this.where };
+        this.$emit('search', where);
+      },
+      /*  重置 */
+      reset() {
+        this.where = { ...this.defaultWhere };
+        this.search();
+      }
+    }
+  };
+  </script>
+  <style lang="scss" scoped>
+  .ele-form-actions {
+    display: flex;
+    align-items: center;
+    justify-content: flex-end;
+  }
+  </style>
+  

+ 172 - 0
src/views/sample/index.vue

@@ -0,0 +1,172 @@
+<template>
+  <div class="ele-body">
+    <el-card shadow="never" v-loading="loading">
+      <order-search @search="reload" ref="searchRef"> </order-search>
+      <ele-pro-table
+        ref="table"
+        :columns="columns"
+        :datasource="datasource"
+        :selection.sync="selection"
+      >
+        <template v-slot:action="{ row }">
+          <el-popconfirm
+            class="ele-action"
+            title="确定要删除吗?"
+            @confirm="remove(row)"
+          >
+            <template v-slot:reference>
+              <el-link type="danger" :underline="false" icon="el-icon-delete">
+                删除
+              </el-link>
+            </template>
+          </el-popconfirm>
+        </template>
+      </ele-pro-table>
+    </el-card>
+  </div>
+</template>
+
+<script>
+  import OrderSearch from './components/search.vue';
+  import dictMixins from '@/mixins/dictMixins';
+
+  import { deleteLine, getList } from '@/api/sample/index';
+  export default {
+    components: {
+      OrderSearch
+    },
+    mixins: [dictMixins],
+    data() {
+      return {
+        loading: false,
+        dialogVisible: false,
+        current: null,
+        selection: []
+      };
+    },
+    computed: {
+      // 表格列配置
+      columns() {
+        return [
+          {
+            columnKey: 'index',
+            label: '序号',
+            type: 'index',
+            width: 55,
+            align: 'center',
+            showOverflowTooltip: true,
+            fixed: 'left'
+          },
+          {
+            prop: 'categoryCode',
+            width: 160,
+            label: '编码',
+            align: 'center'
+          },
+          {
+            prop: 'brandNum',
+            label: '牌号',
+            align: 'center'
+          },
+          {
+            prop: 'deviceName',
+            label: '设备名称',
+            align: 'center'
+          },
+          {
+            prop: 'feedQuantity',
+            label: '投料数量',
+            align: 'center'
+          },
+          {
+            prop: 'modelType',
+            label: '型号',
+            align: 'center'
+          },
+
+          {
+            prop: 'name',
+            label: '物品名称',
+            align: 'center'
+          },
+          {
+            prop: 'notType',
+            label: '处置类型',
+            align: 'center',
+            slot: 'notType',
+            width: 100,
+            showOverflowTooltip: true,
+            formatter: (row, column, cellValue) => {
+              return cellValue == 1
+                ? '返工'
+                : cellValue == 2
+                ? '返修'
+                : cellValue == 3
+                ? '报废'
+                : cellValue == 4
+                ? '降级使用'
+                : cellValue == 5
+                ? '让步接收'
+                : '';
+            }
+          },
+          {
+            prop: 'specification',
+            label: '规格',
+            align: 'center'
+          },
+          {
+            prop: 'unit',
+            label: '计量单位',
+            align: 'center'
+          },
+
+          {
+            prop: 'createTime',
+            label: '创建时间',
+            align: 'center',
+            width: 160
+          },
+
+          {
+            columnKey: 'action',
+            label: '操作',
+            width: 100,
+            align: 'center',
+            resizable: false,
+            fixed: 'right',
+            slot: 'action',
+            showOverflowTooltip: true
+          }
+        ];
+      }
+    },
+    created() {},
+    filters: {},
+    methods: {
+      /* 表格数据源 */
+      datasource({ page, limit, where }) {
+        return getList({
+          pageNum: page,
+          size: limit,
+          ...where
+        });
+      },
+      remove(row) {
+        let ids = row ? [row.id] : this.selection.map((item) => item.id);
+        deleteLine(ids).then((res) => {
+          this.$message.success('删除' + res);
+          this.reload();
+        });
+      },
+      /* 刷新表格 */
+      reload(where) {
+        this.$nextTick(() => {
+          this.$refs.table.reload({ page: 1, where });
+        });
+      }
+    }
+  };
+</script>
+
+<style lang="scss" scoped></style>