XiaoRuby
2023-09-24 abba64c23543cd806ed8864a9a976408618a5f45
src/components/view/raw-ins.vue
@@ -1,232 +1,214 @@
<style scoped>
  .raw_ins {}
.raw_ins {
    height: 100%;
}
  .raw_ins .title .el-button {
.raw_ins .title .el-button {
    height: 32px;
    border: 1px solid rgba(190, 190, 190, 0.44);
    box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
    padding: 0 12px;
  }
}
  .raw_ins .title {
.raw_ins .title {
    margin-bottom: 10px;
    padding: 0 20px;
  }
}
  .choose {
.choose {
    padding: 21px 24px;
    display: flex;
    align-items: center;
    background-color: #fff;
    border-bottom: 3px solid rgb(245, 247, 251);
  }
}
  .choose * {
.choose * {
    font-size: 14px;
  }
}
  .choose .el-button {
.choose .el-button {
    height: 32px;
    border: 1px solid rgba(190, 190, 190, 0.44);
    box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
    padding: 0 12px;
  }
}
  .thing {
.choose span {
    /* span内容强制不换行 */
    white-space: nowrap;
}
.thing {
    width: calc(100% - 44px);
    height: calc(100% - 42px - 82px - 66px);
    background-color: #fff;
    overflow: auto;
    padding: 33px 22px;
  }
}
  .table_do {
.table_do {
    color: #004ea0;
    cursor: pointer;
  }
}
</style>
<style>
  .raw_ins .thing * {
.raw_ins .thing * {
    font-size: 14px;
  }
}
  .raw_ins .has-gutter .el-table__cell {
    background-color: #F0F1F5 !important;
.raw_ins .has-gutter .el-table__cell {
    background-color: #f0f1f5 !important;
    color: #333;
  }
}
  .raw_ins .has-gutter .el-table__cell .cell {
.raw_ins .has-gutter .el-table__cell .cell {
    font-size: 16px;
    font-weight: 500;
  }
}
  .raw_ins .cell {
.raw_ins .cell {
    color: #333;
    padding-left: 17px !important;
  }
}
  .raw_ins .el-table__body-wrapper {
.raw_ins .el-table__body-wrapper {
    height: 100%;
  }
}
  .raw_ins .el-table__body {
.raw_ins .el-table__body {
    height: 100%;
  }
}
</style>
<template>
  <div class="raw_ins">
    <div class="title">
      <el-row>
        <el-col :span="12" style="line-height: 32px;">原材料检验</el-col>
        <el-col :span="12" style="text-align: right;">
          <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;" @click="goDetail(null)">新增</el-button>
          <el-button icon="el-icon-download">删除</el-button>
        </el-col>
      </el-row>
    <div class="raw_ins">
        <div class="title">
            <el-row>
                <el-col :span="12" style="line-height: 32px;">原材料检验</el-col>
                <el-col :span="12" style="text-align: right;">
                    <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;" @click="goDetail(null)">新增</el-button>
                    <el-button icon="el-icon-download">导出</el-button>
                </el-col>
            </el-row>
        </div>
        <div class="choose">
            <span>来料日期:</span>
            <el-date-picker v-model="search.formTime" size="small" placeholder="请输入" style="width: 13vw;margin-right: 5px;" clearable value-format="yyyy-MM-dd"></el-date-picker>
            <span>原材料编码:</span>
            <el-input v-model="search.code" placeholder="请输入" size="small" style="width: 13vw;margin-right: 5px;" clearable></el-input>
            <span>检测状态:</span>
            <el-select v-model="search.insState" size="small" placeholder="请选择" style="width: 13vw;margin-right: 5px;">
                <el-option label="全部" :value="2"></el-option>
                <el-option label="未检测" :value="0"></el-option>
                <el-option label="已检测" :value="1"></el-option>
            </el-select>
            <span>原材料名称:</span>
            <el-input v-model="search.name" size="small" placeholder="请输入" style="width: 13vw;margin-right: 5px;" clearable></el-input>
            <el-button size="mini" @click="clean()"><span>重 置</span></el-button>
            <el-button size="mini" type="primary" style="background: #004EA2;" @click="selectRawInspectsList()"><span>查 询</span></el-button>
        </div>
        <div class="thing">
            <el-table :data="tableData" border style="width: 100%;" height="calc(100% - 50px)" @selection-change="handleSelectionChange" default-expand-all :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" row-key="id">
                <el-table-column type="index" label="序号" width="60">
                </el-table-column>
                <el-table-column prop="formTime" label="来料日期" min-width="110"> </el-table-column>
                <el-table-column prop="code" label="原材料编码" min-width="110"> </el-table-column>
                <el-table-column prop="name" label="原材料名称" min-width="110"> </el-table-column>
                <el-table-column prop="specifications" label="规格型号" min-width="100">
                </el-table-column>
                <el-table-column prop="unit" label="单位" min-width="60"> </el-table-column>
                <el-table-column prop="number" label="数量" min-width="60"> </el-table-column>
                <el-table-column prop="createTime" label="报检日期" min-width="110"> </el-table-column>
                <el-table-column prop="user_name" label="报检人" min-width="80"> </el-table-column>
                <el-table-column prop="createTime" label="检验日期" min-width="110"> </el-table-column>
                <el-table-column prop="createTime" label="检测状态" min-width="100">
                    <template slot-scope="scope">
                        <span style="color: #34BD66;" v-if="scope.row.ins_state == 1">已检测</span>
                        <span style="color: #E84738;" v-else-if="scope.row.ins_state == 0">未检测</span>
                    </template>
                </el-table-column>
                <el-table-column prop="judge_state" label="合格状态" min-width="100">
                    <template slot-scope="scope">
                        <span style="color: #34BD66;" v-if="scope.row.judge_state == 1">合格</span>
                        <span style="color: #E84738;" v-else-if="scope.row.judge_state == 0">不合格</span>
                    </template>
                </el-table-column>
                <el-table-column label="操作" min-width="100" fixed="right">
                    <template slot-scope="scope">
                        <span class="table_do" @click="changeShowDetail(scope.row)">查看</span>
                        <span class="table_do">打印</span>
                    </template>
                </el-table-column>
            </el-table>
            <el-col style="height: 50px;display: flex;align-items: center;justify-content: right;">
                <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="1" :page-sizes="[10, 15, 20, 30, 50]" :page-size="search.co" layout="total, sizes, prev, pager, next, jumper" :total="total">
                </el-pagination>
            </el-col>
        </div>
    </div>
    <div class="choose">
      <span>来料日期:</span>
      <el-date-picker v-model="search.formTime" size="small" placeholder="请输入" style="width: 224px;margin-right: 30px;"
        clearable value-format="yyyy-MM-dd"></el-date-picker>
      <span>报检日期:</span>
      <el-date-picker v-model="search.createTime" size="small" placeholder="请输入"
        style="width: 224px;margin-right: 30px;" clearable value-format="yyyy-MM-dd"></el-date-picker>
      <span>检测状态:</span>
      <el-select v-model="search.insState" size="small" placeholder="请选择" style="width: 224px;margin-right: 30px;">
        <el-option label="全部" :value="2"></el-option>
        <el-option label="未检测" :value="0"></el-option>
        <el-option label="已检测" :value="1"></el-option>
      </el-select>
      <span>合格状态:</span>
      <el-select v-model="search.judgeState" size="small" placeholder="请选择" style="width: 224px;margin-right: 30px;">
        <el-option label="全部" :value="2"></el-option>
        <el-option label="不合格" :value="0"></el-option>
        <el-option label="合格" :value="1"></el-option>
      </el-select>
      <el-button size="mini" @click="clean()"><span>重 置</span></el-button>
      <el-button size="mini" type="primary" style="background: #004EA2;" @click="selectRawInspectsList()"><span>查
          询</span></el-button>
    </div>
    <div class="thing">
      <el-table :data="tableData" border style="width: 100%;overflow-y: auto;min-height: calc(100% - 50px)"
        max-height="calc(100% - 50px)" @selection-change="handleSelectionChange" border default-expand-all
        :tree-props="{children: 'children', hasChildren: 'hasChildren'}" row-key="id">
        <el-table-column type="selection" width="50">
        </el-table-column>
        <el-table-column type="index" label="序号" width="70">
        </el-table-column>
        <el-table-column prop="formTime" label="来料日期">
        </el-table-column>
        <el-table-column prop="code" label="原材料编码">
        </el-table-column>
        <el-table-column prop="name" label="原材料名称">
        </el-table-column>
        <el-table-column prop="specifications" label="规格型号">
        </el-table-column>
        <el-table-column prop="unit" label="单位">
        </el-table-column>
        <el-table-column prop="number" label="数量">
        </el-table-column>
        <el-table-column prop="createTime" label="报检日期">
        </el-table-column>
        <el-table-column prop="userName" label="报检人">
        </el-table-column>
        <el-table-column prop="judgeState" label="合格状态" width="100">
          <template slot-scope="scope">
            <span style="color: #34BD66;" v-if="scope.row.judgeState==1">合格</span>
            <span style="color: #E84738;" v-else-if="scope.row.judgeState==0">不合格</span>
          </template>
        </el-table-column>
        <el-table-column prop="insState" label="检测状态" width="100">
          <template slot-scope="scope">
            <span style="color: #34BD66;" v-if="scope.row.insState==1">已检测</span>
            <span style="color: #E84738;" v-else-if="scope.row.insState==0">未检测</span>
          </template>
        </el-table-column>
        <el-table-column label="操作" width="100">
          <template slot-scope="scope">
            <span class="table_do" @click="changeShowDetail(scope.row)">查看</span>
            <span class="table_do">打印</span>
          </template>
        </el-table-column>
      </el-table>
      <el-col style="height: 50px;display: flex;align-items: center;justify-content: right;">
        <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
          :page-sizes="[1,10, 20, 30, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper"
          :total="countSize">
        </el-pagination>
      </el-col>
    </div>
  </div>
</template>
<script>
  export default {
export default {
    data() {
      return {
        search: {
          formTime: null,
          createTime: null,
          insState: 2,
          judgeState: 2
        },
        tableData: [],
        selects: [],
        currentPage: 1,
        countSize: 0,
        pageSize: 10
      }
        return {
            search: {
                formTime: "", // 来料时间
                code: "", // 原材料编码
                insState: "", // 检测状态
                name: "", //
                countSize: 10, // 条数/页
                pageSize: 1, // 页数
            },
            total: 0,
            tableData: [],
            selects: [],
        };
    },
    props:['goDetail'],
    props: ["goDetail"],
    mounted() {
      this.selectRawInspectsList()
        this.selectRawInspectsList();
    },
    methods: {
      handleSelectionChange(val) {
        this.selects = val;
      },
      handleSizeChange(val) {
        this.pageSize = val
        this.selectRawInspectsList()
      },
      handleCurrentChange(val) {
        this.currentPage = val
        this.selectRawInspectsList()
      },
      selectRawInspectsList() {
        this.axios.post(this.$api.url.selectRawInspectsList, {
          pageSize: this.currentPage,
          countSize: this.pageSize,
          formTime: this.search.formTime,
          createTime: this.search.createTime,
          insState: this.search.insState,
          judgeState: this.search.judgeState
        }).then(res => {
          this.tableData = res.data.data
          this.countSize = res.data.count
        })
      },
      clean() {
        this.selects = []
        this.currentPage = 1
        this.countSize = 0
        this.pageSize = 10
        this.search = {
            formTime: null,
            createTime: null,
            insState: 2,
            judgeState: 2
          },
          this.selectRawInspectsList()
      },
       changeShowDetail({id}){
        this.goDetail(id)
        // console.log(id)
        // const res = await this.$axios.post(this.$api.url.selectRawInspectsListById,{params:{id}})
        // console.log(res)
      }
    }
  }
</script>
        handleSelectionChange(val) {
            this.selects = val;
        },
        handleSizeChange(val) {
            this.search.countSize = val;
            this.selectRawInspectsList();
        },
        handleCurrentChange(val) {
            this.search.pageSize = val;
            this.selectRawInspectsList();
        },
        selectRawInspectsList() {
            this.$axios
                .get(this.$api.url.selectRawInspectsList, {
                    params: this.search,
                })
                .then((res) => {
                    this.tableData = res.data.row;
                    this.total = res.data.total;
                });
        },
        clean() {
            this.search = {
                formTime: "", // 来料时间
                code: "", // 原材料编码
                insState: "", // 检测状态
                name: "", //
                countSize: 10, // 条数/页
                pageSize: 1, // 页数
            };
            this.selectRawInspectsList();
        },
        changeShowDetail({ id }) {
            this.goDetail(id);
            // console.log(id)
            // const res = await this.$axios.post(this.$api.url.selectRawInspectsListById,{params:{id}})
            // console.log(res)
        },
    },
};
</script>