hailin
2023-08-01 16bdd567df324e05cfd137fb57b07ac23400a175
标准库的二次修改和检查详情页的编写来自锅炉组长
已修改7个文件
已添加2个文件
491 ■■■■ 文件已修改
src/App.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/api/controller.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/raw-ins.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/rawInsBox.vue 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/rawInsDetail.vue 271 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/standard-table/technology.vue 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/standard.vue 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/technical.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/App.vue
@@ -115,7 +115,7 @@
  .el-popper .popper__arrow{
    display: none ;
  }
  /**修改全局的滚动条*/
/**修改全局的滚动条*/
/**滚动条的宽度*/
::-webkit-scrollbar {
    width: 8px;
@@ -158,10 +158,33 @@
    color: #999;
    font-weight: 500;
  }
  .el-pager .number.active {
    background-color: #004EA2;
    color: #fff;
    border: 0;
  }
  /* å…¨å±€æ¨¡æ€æ¡†æ ·å¼ */
  .el-dialog__header{
    box-sizing: border-box;
    height: 56px;
    border-bottom: 1px solid rgb(238, 238, 238);
    padding: 0px;
    display: flex;
    align-items: center;
  }
  .el-dialog__header::before{
    content: '';
    display: inline-block;
    width: 4px;
    height: 30.24px;
    background: rgb(0, 95, 201);
    border-radius:10px;
    margin-left: 32px;
    margin-right: 8.5px;
  }
  .el-dialog__header .el-dialog__title{
    font-size: 18px !important;
  }
  /* å…¨å±€è¾“入框样式 */
  /* å…¨å±€æŒ‰é’®æ ·å¼ */
</style>
src/assets/api/controller.js
@@ -2,6 +2,8 @@
const standard = {
  selectTreeByMaterial: "material/selectTreeByMaterial", //查询物料的树
  selectRawInspectsList: "rawInspect/selectRawInspectsList",//查询原材料检验单列表
  selectProductByMaterial: "product/selectTreeByMaterial",//根据物料查询项目表格
  selectTechnologyByMaterial: "technology/select"
}
src/components/view/raw-ins.vue
@@ -146,7 +146,7 @@
        </el-table-column>
        <el-table-column label="操作" width="100">
          <template slot-scope="scope">
            <span class="table_do">查看</span>
            <span class="table_do" @click="changeShowDetail">查看</span>
            <span class="table_do">打印</span>
          </template>
        </el-table-column>
@@ -178,6 +178,7 @@
        pageSize: 10
      }
    },
    props:['goDetail'],
    mounted() {
      this.selectRawInspectsList()
    },
@@ -218,6 +219,9 @@
            judgeState: 2
          },
          this.selectRawInspectsList()
      },
      changeShowDetail(){
        this.goDetail()
      }
    }
  }
src/components/view/rawInsBox.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
<style scoped>
</style>
<template>
  <div class="rawInsBox">
    <RawIns v-show="!showDetail" :goDetail="goDetail"></RawIns>
    <RawInsDetail v-show="showDetail" :goBack="goBack" :detail="detail"></RawInsDetail>
  </div>
</template>
<script>
import RawIns from './raw-ins.vue'
import RawInsDetail from './rawInsDetail.vue'
export default {
    components:{RawIns,RawInsDetail},
    data() {
        return {
            showDetail: false,
            detail:{}
        }
    },
    methods:{
        goDetail(detail) {
            this.showDetail = true
            this.detail = detail
        },
        goBack() {
            this.showDetail = false
        }
    }
}
</script>
src/components/view/rawInsDetail.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,271 @@
<style scoped>
  .rawInsBox{
        height: 100%;
        width: 100%;
        overflow-y: scroll;
        display: flex;
        flex-direction: column;
  }
  .rawInsBox .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;
  }
  .rawInsBox .title {
    margin-bottom: 10px;
    padding: 0 20px;
  }
  /* æ£€éªŒè¯¦æƒ… */
  .raw-detail-info{
    background: #fff;
    padding: 26px 0px 11px 80px;
  }
  .raw-detail-info >>>.el-form-item__label{
        color: rgb(51, 51, 51);
        font-family: å¾®è½¯é›…黑;
        font-size: 16px;
        font-weight: 400;
        letter-spacing: 0px;
  }
  .raw-detail-info .el-input{
        width: auto;
  }
  .raw-detail-info >>>.el-input__inner{
    width: 224px;
    height: 32px;
    box-sizing: border-box;
    background: rgb(238, 238, 238);
    border: 1px solid rgb(221, 221, 221);
    border-radius:4px;
  }
  .raw-detail-info .el-form-item{
    margin-bottom: 24px;
  }
  /* æ£€éªŒé¡¹ç›® */
  .raw-project-table{
    padding: 24px 14px;
    background: #fff;
    flex: 1;
    /* max-height: 360px; */
    /* overflow-y: hidden; */
  }
  /* æ£€éªŒç»“论 */
  .raw-conclusion-table{
    padding: 9px 14px;
    background: #fff;
  }
</style>
<template>
  <div class="rawInsBox">
    <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 icon="el-icon-download" @click="()=>{goBack()}">返 å›ž</el-button>
        </el-col>
      </el-row>
    </div>
    <div class="raw-detail-info">
        <el-form v-model="detail" label-position="right" label-width="120px" >
            <el-row>
                <el-col :span="7">
                    <el-form-item label="来料日期:">
                        <el-input></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="7">
                    <el-form-item label="规格型号:">
                        <el-input></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="7">
                    <el-form-item label="原材料编码:">
                        <el-input></el-input>
                    </el-form-item>
                </el-col>
            </el-row>
             <el-row>
                <el-col :span="7">
                    <el-form-item label="原材料名称:">
                        <el-input></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="7">
                    <el-form-item label="报检日期:">
                        <el-input></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="7">
                    <el-form-item label="单位:">
                        <el-input></el-input>
                    </el-form-item>
                </el-col>
            </el-row>
             <el-row>
                <el-col :span="7">
                    <el-form-item label="数量:">
                        <el-input></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="7">
                    <el-form-item label="报检人:">
                        <el-input></el-input>
                    </el-form-item>
                </el-col>
            </el-row>
        </el-form>
    </div>
    <div class="title">
      <el-row>
        <el-col :span="12" style="line-height: 32px;">检验项目</el-col>
      </el-row>
    </div>
    <div class="raw-project-table">
        <el-table
            :data="projectTable"
            style="width: 100%"
            max-height="320"
            >
            <el-table-column
                type="index"
                label="序号"
                width="100"
                >
            </el-table-column>
            <el-table-column
                prop="name"
                label="项目"
                width="212">
            </el-table-column>
            <el-table-column
                prop="address"
                label="单位"
                width="148">
            </el-table-column>
            <el-table-column
                prop="address"
                label="标准"
                width="254">
            </el-table-column>
            <el-table-column
                prop="address"
                label="内控值"
                width="291">
            </el-table-column>
            <el-table-column
                prop="address"
                label="检查值"
                width="371">
            </el-table-column>
            <el-table-column
                prop="address"
                label="试验设备"
                width="248"
                >
            </el-table-column>
            <el-table-column
                prop="address"
                label="结论"
                 width="98"
                >
            </el-table-column>
    </el-table>
    </div>
    <div class="title">
      <el-row>
        <el-col :span="12" style="line-height: 32px;">检验结论</el-col>
      </el-row>
    </div>
    <div class="raw-conclusion-table">
        <el-table :data="conclusionTable">
            <el-table-column
                prop="number"
                label="物料编号"
                width="353">
            </el-table-column>
            <el-table-column
                prop="number"
                label="物料名称"
                width="353">
            </el-table-column>
            <el-table-column
                prop="number"
                label="检验员"
                width="542">
            </el-table-column>
            <el-table-column
                prop="number"
                label="检验结论"
                width="362">
            </el-table-column>
             <el-table-column
                fixed="right"
                label="操作"
                width="120">
                <template slot-scope="scope">
                    <el-button type="text" size="small">上报</el-button>
                </template>
            </el-table-column>
        </el-table>
    </div>
  </div>
</template>
<script>
import RawIns from './raw-ins.vue'
export default {
    components:{RawIns},
    props:['goBack','detail'],
    created(){
        console.log(this.detail)
    },
    data() {
        return {
            conclusionTable:[
                {number:'物料名称'}
            ],
            projectTable:[
                {
            date: '2016-05-02',
            name: '王小虎',
            address: '上海市'
          }, {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市'
          }, {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市'
          }, {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市'
          }, {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市'
          }, {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市'
          }, {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市'
          }, {
            date: '2016-05-04',
            name: '王小虎',
            address: '上海市'
          }
            ]
        }
    },
}
</script>
src/components/view/standard-table/technology.vue
@@ -44,20 +44,42 @@
<template>
  <div class="standard">
    <el-table :data="tableData" border style="width: 100%" @selection-change="handleSelectionChange" row-key="id"
      default-expand-all :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
    <el-table  :data="tableData" border style="width: 100%"  row-key="id"
      :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
      <el-table-column type="selection" width="50">
      </el-table-column>
      <el-table-column type="index" label="序号" width="70">
      <template v-if="tableType==1">
        <el-table-column type="index" label="序号" width="70">
        <template slot-scope="scope">
                {{ scope.row.index }}
        </template>
      </el-table-column>
      <el-table-column prop="date" label="项目">
      <el-table-column prop="name" label="项目">
        <template slot-scope="scope">
                <el-tag size="mini" :type="scope.row.index? '':'success'" :style="{borderRadius: '40%',marginRight: '12px'}">{{ scope.row.index? '01':'02'}}</el-tag>
                {{scope.row.name}}
        </template>
      </el-table-column>
      <el-table-column prop="name" label="单位">
      <el-table-column prop="unit" label="单位">
      </el-table-column>
      <el-table-column prop="address" label="标准值">
      <el-table-column prop="required" label="标准值">
      </el-table-column>
      <el-table-column prop="address" label="内控值">
      <el-table-column prop="internal" label="内控值">
      </el-table-column>
      </template>
      <template v-else>
        <el-table-column prop="name" label="工艺名称">
        </el-table-column>
        <el-table-column prop="device_group" label="设备组">
        </el-table-column>
        <el-table-column  label="匹配设备">
          <template>
            <el-button type="text">选择</el-button>
          </template>
        </el-table-column>
        <el-table-column prop="quota" label="工时定额">
        </el-table-column>
      </template>
    </el-table>
  </div>
</template>
@@ -66,42 +88,16 @@
  export default {
    data() {
      return {
        tableData: [{
          id: 1,
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1518 å¼„'
        }, {
          id: 2,
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1517 å¼„'
        }, {
          id: 3,
          date: '2016-05-01',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1519 å¼„',
          children: [{
              id: 31,
              date: '2016-05-01',
              name: '王小虎',
              address: '上海市普陀区金沙江路 1519 å¼„'
            }, {
              id: 32,
              date: '2016-05-01',
              name: '王小虎',
              address: '上海市普陀区金沙江路 1519 å¼„'
          }]
        }, {
          id: 4,
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀区金沙江路 1516 å¼„'
        }],
        selects: []
      }
    },
    mounted() {},
    props:['tableData','tableType'],
    created() {
      console.log(this.tableData,this.tableType)
    },
    mounted() {
    },
    methods: {
      handleSelectionChange(val) {
        this.selects = val;
src/components/view/standard.vue
@@ -111,7 +111,7 @@
      <el-row>
        <el-col :span="12" style="line-height: 32px;">标准BOM</el-col>
        <el-col :span="12" style="text-align: right;">
          <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;">新增</el-button>
          <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;" @click="bomAddModelVisible= true">新增</el-button>
          <el-button icon="el-icon-edit-outline">修改</el-button>
          <el-button icon="el-icon-delete">删除</el-button>
        </el-col>
@@ -136,18 +136,33 @@
        <div class="choose">
          <span>类型:</span>
          <el-select v-model="tableType" size="small" placeholder="请选择" style="width: 224px;margin-right: 52px;">
            <el-option value="工艺文件"></el-option>
            <el-option value="技术指标"></el-option>
            <el-option :value="0" label="工艺文件"></el-option>
            <el-option :value="1" label="技术指标"></el-option>
          </el-select>
          <span>{{tableType=='技术指标'?'项目:':'工艺名称:'}}</span>
          <span>{{tableType==1?'项目:':'工艺名称:'}}</span>
          <el-input v-model="searchName" size="small" placeholder="请输入" style="width: 224px;margin-right: 24px;" clearable></el-input>
          <el-button size="mini"><span>重 ç½®</span></el-button>
          <el-button size="mini" type="primary" style="background: #004EA2;"><span>查 è¯¢</span></el-button>
          <el-button size="mini" @click="()=>{searchName='';selectProductTableData()}"><span>重 ç½®</span></el-button>
          <el-button size="mini" type="primary" style="background: #004EA2;" @click="selectProductTableData"><span>查 è¯¢</span></el-button>
        </div>
        <div class="table">
          <technology></technology>
          <technology v-if="tableData.length!==0" :tableType="tableType" :tableData="tableData"></technology>
        </div>
      </div>
    </div>
    <div class="bom-add-model">
      <el-dialog
        title="BOM新增"
        :visible.sync="bomAddModelVisible"
        width="30%"
        :before-close="handleClose">
        <el-form>
        </el-form>
        <span slot="footer" class="dialog-footer">
          <el-button @click="bomAddModelVisible = false">取 æ¶ˆ</el-button>
          <el-button type="primary" @click="bomAddModelVisible = false">ç¡® å®š</el-button>
        </span>
      </el-dialog>
    </div>
  </div>
</template>
@@ -158,6 +173,7 @@
    components: {technology},
    data() {
      return {
        // BOM树数据结构
        list: [{
          id: 0,
          name: "原材料",
@@ -175,13 +191,24 @@
          children: []
        }],
        search: null,
        tableType: "技术指标",
        searchName: ""
        // è¡¨æ ¼ç±»åž‹ 1:技术指标,0:工艺路线
        tableType: 1,
        // æŸ¥è¯¢æ¡ä»¶-名称
        searchName: "",
        // ç‚¹å‡»é€‰ä¸­æ ‘节点
        checkTreeNode: {},
        tableData:[],
        // æŽ§åˆ¶bom新增模态框是否显示
        bomAddModelVisible: false
      }
    },
    watch: {
      search(val) {
        this.$refs.tree.filter(val);
      },
      tableType(val){
        console.log(val)
        this.selectProductTableData()
      }
    },
    mounted() {
@@ -189,7 +216,10 @@
    },
    methods: {
      handleNodeClick(data) {
        console.log(data);
        // console.log(data);
        this.checkTreeNode = data
        // this.selectMaterialTree()
        this.selectProductTableData()
      },
      filterNode(value, data) {
        if (!value) return true;
@@ -225,6 +255,27 @@
          })
        })
        
      },
      async selectProductTableData() {
        switch (this.tableType) {
          case 0:
        const {data:technologyList} = await this.$axios.get(this.$api.url.selectTechnologyByMaterial,{params:{specificationId:this.checkTreeNode.id,technologyName:this.searchName}})
        this.tableData = technologyList
            break;
          case 1:
        const {data:productList} = await this.$axios.get(this.$api.url.selectProductByMaterial,{params:{specifications:this.checkTreeNode.id,project:this.searchName}})
        productList.forEach((item,index)=>{
          item.name = item.father
          item.index = index+1
          item.id = item.father
          if(item.children.length===1){
            productList[index] = {...item.children[0],index: index+1,name:item.father}
          }
        })
        this.tableData = productList
            break;
        }
        console.log(this.tableData)
      }
    }
  }
src/components/view/technical.vue
@@ -48,7 +48,7 @@
color: #fff;
}
/* è¾“入框的样式 */
>>> .search-header .el-form-item .el-input .el-input__inner{
>>>.search-header .el-form-item .el-input .el-input__inner{
width: 224px;
height: 32px ;
box-sizing: border-box;
src/view/index.vue
@@ -292,7 +292,7 @@
            k: 3,
            v: "原材料检验",
            i: "font icon-shouye",
            u: "raw-ins"
            u: "rawInsBox"
          }, {
            k: 4,
            v: "原材料不合格品",