XiaoRuby
2023-09-24 2573c1c123a8464c312d27e380ac16d7e0ac2f11
Merge remote-tracking branch 'origin/master'

# Conflicts:
# src/assets/api/controller.js
# src/components/view/processInspection.vue
# src/main.js
# src/view/index.vue
已修改13个文件
1134 ■■■■■ 文件已修改
src/assets/api/controller.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/Technicalindex.vue 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/finishedProductInspectionUp.vue 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/mbom.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/processInspection.vue 628 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/processInspectionUpdate.vue 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/rawInsDetail.vue 129 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/sale.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/self-inspection.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/standard.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/technology.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/view/index.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/api/controller.js
@@ -48,6 +48,7 @@
    rawSelectDevice: "/rawInsProduct/selectDevice", //查询设备信息
    addRawInspects: "/rawInspect/addRawInspects", // 添加
    updateDevByRpId: "/rawInsProduct/updateDevByRpId", // 更改设备
    rawInspectChooseIFS: "/rawInspect/chooseIFS",//通过设备编码得到信息
}
// 查询成品不合格品管理
@@ -179,6 +180,8 @@
    selectSaleDatilById: "sale/selectSaleDatilById", //根据销售单id查看详情,
    addSale: "sale/addSale", //新增销售单
    saleCheck: "sale/check", //审核销售单
    exportSale: "sale/exportSale",//导出销售订单
    saleDownload: "sale/download",//下载附件
    synchronization: "sale/synchronization", //同步
    updateSaleById: "sale/updateSaleById", //根据销售单id修改详情信息
    delSale: "sale/delSale", //根据销售单id删除
src/components/view/Technicalindex.vue
@@ -7,6 +7,8 @@
                    <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;" @click="event">新增</el-button>
                    <!-- <el-button icon="el-icon-edit-outline" @click="modify">修改</el-button> -->
                    <el-button icon="el-icon-delete" @click="dels">删除</el-button>
                    <el-button icon="el-icon-download" @click="clickDownload">导出</el-button>
                    <el-button icon="el-icon-upload2">导入</el-button>
                </el-col>
            </el-row>
        </div>
@@ -18,7 +20,8 @@
                        <el-form-item label="类型">
                            <template>
                                <el-select v-model="value" placeholder="请选择" style="width: 560px;">
                                    <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
                                    <el-option v-for="item in options" :key="item.value" :label="item.label"
                                        :value="item.value">
                                    </el-option>
                                </el-select>
                            </template>
@@ -72,7 +75,8 @@
                    <el-tree :data="list" ref="tree" :props="{children: 'children',label: 'father'}" node-key="name"
                        default-expand-all @node-click="handleNodeClick" highlight-current>
                        <div class="custom-tree-node" slot-scope="{ node, data }">
                            <span><i :class="`node_i ${data.code != '[2]'?'el-icon-folder-opened':'el-icon-tickets'}`"></i>
                            <span><i
                                    :class="`node_i ${data.code != '[2]' ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i>
                                {{data.code}} {{ data.name }}</span>
                        </div>
                    </el-tree>
@@ -103,7 +107,8 @@
                            <template slot-scope="scope" style="text-align: center;">
                                <div v-if="!scope.row.children">
                                    <el-button type="text" size="mini" @click="childrenClick(scope.row)">编辑</el-button>
                                    <el-button type="text" size="mini" @click="deleteRow(scope.$index, scope.row)">删除</el-button>
                                    <el-button type="text" size="mini"
                                        @click="deleteRow(scope.$index, scope.row)">删除</el-button>
                                </div>
                            </template>
                        </el-table-column>
@@ -127,9 +132,10 @@
                                <el-col :span="4" style="font-size: 14px;text-align: right;">工序:</el-col>
                                <el-col :span="16" :offset="1">
                                    <template>
                                        <el-select v-model="edit.techFather" placeholder="请选择" allow-create disabled style="width: 306px;"
                                            filterable @change="workevent">
                                            <el-option v-for="(item,index) in process" :key="item.name" :label="item.name" :value="item.name">
                                        <el-select v-model="edit.techFather" placeholder="请选择" allow-create disabled
                                            style="width: 306px;" filterable @change="workevent">
                                            <el-option v-for="(item, index) in process" :key="item.name" :label="item.name"
                                                :value="item.name">
                                            </el-option>
                                        </el-select>
                                    </template>
@@ -139,9 +145,10 @@
                                <el-col :span="4" style="font-size: 14px;text-align: right;">工艺:</el-col>
                                <el-col :span="16" :offset="1">
                                    <template>
                                        <el-select v-model="edit.techName" placeholder="请选择" disabled style="width: 306px;" allow-create
                                            filterable>
                                            <el-option v-for="item in craftapi" :key="item.id" :label="item.name" :value="item.id">
                                        <el-select v-model="edit.techName" placeholder="请选择" disabled style="width: 306px;"
                                            allow-create filterable>
                                            <el-option v-for="item in craftapi" :key="item.id" :label="item.name"
                                                :value="item.id">
                                            </el-option>
                                        </el-select>
                                    </template>
@@ -189,8 +196,8 @@
                                    <el-form-item label="工序">
                                        <template>
                                            <el-select v-model="form.work" placeholder="请选择" @change="workevent">
                                                <el-option v-for="(item,index) in process" :key="item.name" :label="item.name"
                                                    :value="item.name">
                                                <el-option v-for="(item, index) in process" :key="item.name"
                                                    :label="item.name" :value="item.name">
                                                </el-option>
                                            </el-select>
                                        </template>
@@ -199,8 +206,10 @@
                                <el-col :span="11" :offset="2">
                                    <el-form-item label="工艺">
                                        <template>
                                            <el-select v-model="form.name" style="width: 95%;" placeholder="请选择" @change="craftrow">
                                                <el-option v-for="item in craftapi" :key="item.id" :label="item.name" :value="item.id">
                                            <el-select v-model="form.name" style="width: 95%;" placeholder="请选择"
                                                @change="craftrow">
                                                <el-option v-for="item in craftapi" :key="item.id" :label="item.name"
                                                    :value="item.id">
                                                </el-option>
                                            </el-select>
                                        </template>
@@ -211,8 +220,10 @@
                                <el-col :span="11">
                                    <el-form-item label="项目组">
                                        <template>
                                            <el-select v-model="form.father" placeholder="请选择" allow-create filterable @create="electadd">
                                                <el-option v-for="item in higherlevel" :key="item" :label="item" :value="item">
                                            <el-select v-model="form.father" placeholder="请选择" allow-create filterable
                                                @create="electadd">
                                                <el-option v-for="item in higherlevel" :key="item" :label="item"
                                                    :value="item">
                                                </el-option>
                                            </el-select>
                                        </template>
@@ -231,6 +242,20 @@
                        <span slot="footer" class="dialog-footer">
                            <el-button @click="dialogVisible = false">取 消</el-button>
                            <el-button type="primary" @click="add">确 定</el-button>
                        </span>
                    </el-dialog>
                </div>
                <div>
                    <el-dialog title="导出类型选择" :visible.sync="isDownload" width="30%">
                        <el-col>
                            请选择类型:
                        </el-col>
                        <el-select v-model="downloadTypeSelect" style="width: 100%;margin-top: 10px;" placeholder="请选择">
                            <el-option v-for="(a, ai) in typeTable" :key="ai" :value="a"></el-option>
                        </el-select>
                        <span slot="footer" class="dialog-footer">
                            <el-button @click="isDownload = false">取 消</el-button>
                            <el-button type="primary" @click="downloadSelect">确 定</el-button>
                        </span>
                    </el-dialog>
                </div>
@@ -265,6 +290,9 @@
                children: [],
                modifyevent: false,
                dialogVisible: false,
            isDownload: false,//导出按钮
            downloadTypeSelect: null,
            typeTable: [],
                tableData: [],
                crafval: '',
                typeselect: 0,
@@ -287,6 +315,20 @@
            this.chooseType()
        },
        methods: {
        clickDownload() {
            this.isDownload = true
            this.typeTable = []
            let data=JSON.parse(JSON.stringify(this.bigType))
            data.unshift("全部")
            this.typeTable=data
        },
        downloadSelect() {
            console.log(this.downloadTypeSelect);
        },
        handleSelectionChange() {
        },
            chooseType() {
                this.$axios.get(this.$api.url.chooseType).then(res => {
                    this.bigType = res.data
@@ -331,7 +373,6 @@
            },
            //递归子级
            toggleSelect(data, flag, type) {
                // console.log('222');
                if (type === "all") {
                    if (data.length > 0) {
                        data.forEach((item) => {
@@ -377,7 +418,6 @@
                    }
                }).then(res => {
                    this.edit = res.data[0]
                    console.log(this.edit);
                })
            },
            childrenClick(val) {
@@ -386,7 +426,6 @@
                this.upDia = true
            },
            writeTechByIdskill() {
                // console.log(this.upData.id);
                this.$axios.post(this.$api.url.writeTechByIdskill + '?id=' + this.upData.id, {
                    name: this.edit.name,
                    father: this.edit.father,
@@ -407,7 +446,6 @@
            },
            //删除
            delTechBy() {
                console.log(this.$api.url.delTechBy, this.upData.id);
                this.$axios.post(this.$api.url.delTechBy, {
                    id: this.upData.id
                }).then(res => {
@@ -432,9 +470,7 @@
                })
            },
            dels() {
                let ee = []
                console.log(this.selects);
                this.selects.forEach(el => {
                    if (el.children) {
                        el.children.forEach(ele => {
@@ -444,7 +480,6 @@
                })
                // cc.splice(0,1)
                this.delete = ee.join(',')
                console.log(this.delete);
                this.delAllTechskill()
                this.$message.success('删除完成')
            },
@@ -454,7 +489,6 @@
                this.form = {};
            },
            electadd(value) {
                console.log(value);
                this.higherlevel.push({});
                this.form.father = value;
            },
@@ -476,7 +510,6 @@
            },
            TYpe(val) {
                this.typeselect = val
                console.log(this.typeselect);
                this.selectAllleft()
            },
            edittype(val) {
@@ -492,7 +525,6 @@
                    }
                }).then(res => {
                    this.list = res.data;
                    console.log(this.list);
                    this.selectDataList()
                    this.$nextTick(() => {
                        this.$refs.tree.setCurrentKey(this.list[0].children[0].name) // 默认选中节点第一个
@@ -500,10 +532,8 @@
                    let one = this.list.filter(item => {
                        return item.children.length > 0
                    })[0]
                    console.log(one);
                    let name = one.children[0].id
                    this.checkTreeNode.id = name
                    console.log(name);
                    this.selectAllrightStart(name)
                    this.selectDataList();
                });
@@ -515,7 +545,6 @@
                    }
                }).then(res => {
                    this.tableData = res.data;
                    console.log(this.tableData);
                });
            },
            //
@@ -531,7 +560,6 @@
                    }
                }).then(res => {
                    this.tableData = res.data;
                    console.log(this.tableData);
                });
            },
            craftrow(val) {
@@ -540,14 +568,12 @@
            },
            //上级
            chooseProFath() {
                console.log(this.checkTreeNode.id);
                this.$axios.get(this.$api.url.chooseProFath, {
                    params: {
                        techTemId: this.crafval
                    }
                }).then(res => {
                    this.higherlevel = res.data;
                    console.log(this.higherlevel);
                }, {
                    headers: {
                        "Content-Type": "application/json"
@@ -562,7 +588,6 @@
                    }
                }).then(res => {
                    this.process = res.data;
                    console.log(this.process);
                }, {
                    headers: {
                        "Content-Type": "application/json"
@@ -570,14 +595,12 @@
                })
            },
            workevent(val) {
                console.log(val);
                let idx = this.process.findIndex(el => el.name === val)
                this.craftapi = this.process[idx].children
            },
            handleNodeClick(data) {
                this.checkTreeNode = data
                console.log(this.checkTreeNode.id);
                this.selectAllright()
            },
            event() {
src/components/view/finishedProductInspectionUp.vue
@@ -24,14 +24,14 @@
                        </el-col>
                        <el-col :span="7">
                            <el-form-item label="客户名称:">
                                <el-input disabled style="width: 180px;" v-model="processInspectVo.prname" placeholder="请输入客户名称"
                                    autocomplete="off" />
                                <el-input disabled style="width: 180px;" v-model="processInspectVo.prname"
                                    placeholder="请输入客户名称" autocomplete="off" />
                            </el-form-item>
                        </el-col>
                        <el-col :span="7">
                            <el-form-item label="工程名称:">
                                <el-input disabled style="width: 180px;" v-model="processInspectVo.sname" placeholder="请输入工程名称"
                                    autocomplete="off" />
                                <el-input disabled style="width: 180px;" v-model="processInspectVo.sname"
                                    placeholder="请输入工程名称" autocomplete="off" />
                            </el-form-item>
                        </el-col>
                    </el-row>
@@ -54,8 +54,8 @@
                        </el-col>
                        <el-col :span="7">
                            <el-form-item label="产品编码:">
                                <el-input disabled style="width: 180px;" v-model="processInspectVo.mcode" placeholder="请输入产品编码"
                                    autocomplete="off" />
                                <el-input disabled style="width: 180px;" v-model="processInspectVo.mcode"
                                    placeholder="请输入产品编码" autocomplete="off" />
                            </el-form-item>
                        </el-col>
                    </el-row>
@@ -68,14 +68,14 @@
                        </el-col>
                        <el-col :span="7">
                            <el-form-item label="单位:">
                                <el-input disabled style="width: 180px;" v-model="processInspectVo.unit" placeholder="请输入产品编码"
                                    autocomplete="off" />
                                <el-input disabled style="width: 180px;" v-model="processInspectVo.unit"
                                    placeholder="请输入产品编码" autocomplete="off" />
                            </el-form-item>
                        </el-col>
                        <el-col :span="7">
                            <el-form-item label="数量:">
                                <el-input disabled style="width: 180px;" v-model="processInspectVo.quantity" placeholder="请输入数量"
                                    autocomplete="off" />
                                <el-input disabled style="width: 180px;" v-model="processInspectVo.quantity"
                                    placeholder="请输入数量" autocomplete="off" />
                            </el-form-item>
                        </el-col>
                        <el-col :span="3" style="display: flex;justify-content: end;">
@@ -88,9 +88,11 @@
        <div class="inspectionProject">
            <el-row>
                <el-col :span="12" class="inspectionProject_span">检验项目</el-col>
                <el-col v-if="!isUpBtn" :span="12" class="inspectionProject_span" style="display: flex;justify-content: end;">
                <el-col v-if="!isUpBtn" :span="12" class="inspectionProject_span"
                    style="display: flex;justify-content: end;">
                    <el-button size="mini" @click="clickDeleteInspectionColumn()">删除检验值列</el-button>
                    <el-button style="margin-right: 30px;" size="mini" @click="clickAddInspectionColumn()">添加检验值列</el-button>
                    <el-button style="margin-right: 30px;" size="mini"
                        @click="clickAddInspectionColumn()">添加检验值列</el-button>
                    <!-- <el-button
              size="mini"
              style="margin-right: 30px;"
@@ -164,11 +166,11 @@
            <div class="div_device_dialog">
                <el-input placeholder="输入关键字进行过滤" v-model="filterText" style="margin-bottom: 6px;">
                </el-input>
                <el-tree class="filter-tree" :data="materialOptions" :props="defaultProps" default-expand-all highlight-current
                    @node-click="nodeClick" :filter-node-method="filterNode" ref="tree">
                <el-tree class="filter-tree" :data="materialOptions" :props="defaultProps" default-expand-all
                    highlight-current @node-click="nodeClick" :filter-node-method="filterNode" ref="tree">
                    <div class="custom-tree-node" slot-scope="{ data }">
                        <span><i
                                :class="`node_i ${data.children ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i>{{ data.name }}</span>
                        <span><i :class="`node_i ${data.children ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i>{{
                            data.name }}</span>
                    </div>
                </el-tree>
            </div>
@@ -321,17 +323,21 @@
                    });
                    return
                }
            let pro = this.inspectionItems.filter(item => {
                return item.result === 0;
            })
            if (pro.length > 0) {
                this.$prompt('请输入不合格数量', '不合格数量', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    inputPattern: /^\d+$/,
                    inputErrorMessage: '请输入正确数字格式'
                }).then(({ value }) => {
                this.$axios.post(this.$api.url.finishedInspectUpdateFinishInspectsById, {
                    id: this.detailId
                        id: this.detailId,
                        number: value
                }).then(res => {
                    if (res.code == 200) {
                        if (res.message === '项目未检验完!') {
                            this.$message({
                                message: res.message,
                                type: 'warning'
                            });
                            return
                        }
                        this.$message({
                            message: '上报成功',
                            type: 'success'
@@ -343,8 +349,39 @@
                            type: 'warning'
                        });
                    }
                })
                    })
                }).catch(() => {
                    this.$message({
                        type: 'info',
                        message: '取消输入'
                    });
                });
            } else {
                this.$axios.post(this.$api.url.finishedInspectUpdateFinishInspectsById, {
                    id: this.detailId
                }).then(res => {
                    if (res.code == 200) {
                        if (res.message === '项目未检验完!') {
                            this.$message({
                                message: res.message,
                                type: 'warning'
                            });
                            return
                        }
                        // this.$message({
                        //     message: '上报成功',
                        //     type: 'success'
                        // });
                        this.$parent.comBackMain(true)
                    } else {
                        this.$message({
                            message: res.message,
                            type: 'warning'
                        });
                    }
                })
            }
            },
            changeOptionsSamplename() {
                let id = this.processInspectVo.material.split("-")[0]
src/components/view/mbom.vue
src/components/view/processInspection.vue
@@ -5,8 +5,10 @@
                <el-row>
                    <el-col :span="12">过程检验</el-col>
                    <el-col :span="12" style="text-align: right;">
                        <el-button @click="handleAddNew" type="primary" size="mini" icon="el-icon-plus" style="background: #004EA2; ">新增</el-button>
            <el-button @click="handleAddNew" type="primary" size="mini" icon="el-icon-plus"
              style="background: #004EA2; ">新增</el-button>
                        <el-button icon="el-icon-download" size="mini">导出</el-button>
            <el-button @click="report" icon="el-icon-download" size="mini">生成报告</el-button>
                    </el-col>
                </el-row>
            </div>
@@ -18,15 +20,18 @@
                    <el-option :value="0" label="不合格"></el-option>
                </el-select>
                <span>产品名称:</span>
                <el-input size="small" style="width: 224px;margin-right: 30px;" v-model="search.name" placeholder="请输入产品名称"></el-input>
        <el-input size="small" style="width: 224px;margin-right: 30px;" v-model="search.name"
          placeholder="请输入产品名称"></el-input>
                <span>工序:</span>
                <el-input size="small" style="width: 224px;margin-right: 30px;" v-model="search.techfather" placeholder="请输入工序"></el-input>
        <el-input size="small" style="width: 224px;margin-right: 30px;" v-model="search.techfather"
          placeholder="请输入工序"></el-input>
                <el-button size="mini"><span>重 置</span></el-button>
                <el-button size="mini" @click="searchPro" type="primary" style="background: #004EA2;"><span>查 询</span></el-button>
            </div>
            <div class="content-body">
                <div class="inspectionTable">
                    <el-table ref="inspectionTable" height="calc(100vh - 290px)" :cell-style="{ textAlign: 'center' }" :header-cell-style="{
          <el-table ref="inspectionTable" height="calc(100vh - 320px)" :cell-style="{ textAlign: 'center' }"
            :header-cell-style="{
                        border: '0px',
                        background: '#f5f7fa',
                        color: '#606266',
@@ -35,34 +40,37 @@
                        }" border :data="inspectionTable" style="width: 100%">
                        <el-table-column type="selection" width="50"> </el-table-column>
                        <el-table-column label="序号" type="index" width="60"></el-table-column>
                        <el-table-column prop="order_number" label="订单编号" min-width="100" />
                        <el-table-column prop="material" label="产品名称" min-width="100" />
                        <el-table-column prop="specifications_model" label="规格型号" min-width="100" />
                        <el-table-column prop="techfather" label="工序" min-width="60" />
                        <el-table-column prop="techname" label="工艺名称" min-width="100" />
                        <el-table-column prop="unit" label="单位" min-width="60" />
                        <el-table-column prop="quantity" label="数量" min-width="60" />
                        <el-table-column prop="createTime" label="报检日期" min-width="110" />
                        <el-table-column prop="name" label="报检人" min-width="80" />
                        <el-table-column prop="updateTime" label="检测日期" min-width="110" />
                        <el-table-column prop="result" label="合格状态" min-width="100">
            <el-table-column prop="order_number" label="订单编号" min-width="90" />
            <el-table-column prop="material" label="产品名称" min-width="80" />
            <el-table-column prop="specifications_model" label="规格型号" min-width="60" />
            <el-table-column prop="techfather" label="工序" min-width="70" />
            <el-table-column prop="techname" label="工艺名称" min-width="70" />
            <el-table-column prop="unit" label="单位" min-width="50" />
            <el-table-column prop="quantity" label="数量" min-width="50" />
            <el-table-column prop="createTime" label="报检日期" min-width="60" />
            <el-table-column prop="name" label="报检人" min-width="50" />
            <el-table-column prop="updateTime" label="检测日期" min-width="60" />
            <el-table-column prop="result" label="合格状态" min-width="80">
                            <template slot-scope="scope">
                                <span style="color: #34BD66;" v-if="scope.row.result == 1">合格</span>
                                <span style="color: #E84738;" v-else-if="scope.row.result == 0">不合格</span>
                            </template>
                        </el-table-column>
                        <el-table-column label="操作" min-width="150" fixed="right">
            <el-table-column label="操作" min-width="80">
                            <template slot-scope="scope">
                                <el-button type="text" size="small" @click="handleClick(scope.row)" style="margin-left: 0;">详情</el-button>
                                <el-button type="text" size="small">查看</el-button>
                                <el-button v-if="scope.row.result == null" type="text" size="small" style="margin-left: 0;" @click="updateInsInfo(scope.row)">编辑</el-button>
                <el-button v-if="scope.row.result == null" type="text" size="small" style="margin-left: 0;"
                  @click="updateInsInfo(scope.row)">编辑</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
                </div>
                <!-- 分页器 -->
                <div class="pagination">
                    <el-pagination :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="inspectionTableTotal" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
          <el-pagination :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize"
            layout="total, sizes, prev, pager, next, jumper" :total="inspectionTableTotal" @size-change="handleSizeChange"
            @current-change="handleCurrentChange" />
                </div>
            </div>
        </div>
@@ -75,20 +83,24 @@
                        <!-- 点击返回,当前页面值为false -->
                        <!-- <el-button type="primary" size="mini" style="background: #004EA2; "
              icon="el-icon-circle-plus-outline">新增</el-button> -->
                        <el-button @click="combackIndex" type="primary" size="mini" icon="el-icon-back" style="background: #004EA2; ">返回</el-button>
            <el-button @click="combackIndex" type="primary" size="mini" icon="el-icon-back"
              style="background: #004EA2; ">返回</el-button>
                    </el-col>
                </el-row>
                <el-form :model="processInspectVo" ref="addInspectionform" class="addInspectionform" label-position="right" label-width="120px" size="small">
        <el-form :model="processInspectVo" ref="addInspectionform" class="addInspectionform" label-position="right"
          label-width="120px" size="small">
                    <div class="formwrapper">
                        <el-row :gutter="230">
                            <el-col :span="7">
                                <el-form-item label="订单号:">
                                    <el-input @blur="selectInfoByOrderId" style="width: 210px;" size="small" v-model="processInspectVo.orderNumber" placeholder="请输入订单号" />
                  <el-input @blur="selectInfoByOrderId" style="width: 210px;" size="small"
                    v-model="processInspectVo.orderNumber" placeholder="请输入订单号" />
                                </el-form-item>
                            </el-col>
                            <el-col :span="7">
                                <el-form-item label="产品名称:">
                                    <el-select style="width: 210px;" size="small" @change="selectSample" v-model="processInspectVo.material" placeholder="请选择产品">
                  <el-select style="width: 210px;" size="small" @change="selectSample" v-model="processInspectVo.material"
                    placeholder="请选择产品">
                                        <el-option v-for="item in optionsSamplename" :key="item.value" :label="item.name" :value="item.name">
                                        </el-option>
                                    </el-select>
@@ -96,20 +108,24 @@
                            </el-col>
                            <el-col :span="7">
                                <el-form-item label="产品编码:">
                                    <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.materialCode" placeholder="请输入产品编码" />
                  <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.materialCode"
                    placeholder="请输入产品编码" />
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row :gutter="230">
                            <el-col :span="7">
                                <el-form-item label="规格型号:">
                                    <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.specificationsModel" placeholder="请输入规格型号" />
                  <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.specificationsModel"
                    placeholder="请输入规格型号" />
                                </el-form-item>
                            </el-col>
                            <el-col :span="7">
                                <el-form-item label="工序名称:">
                                    <el-select @change="changeOptionSoptionSprocesses" v-model="processInspectVo.techfather" placeholder="请选择" style="width: 210px;" size="small">
                                        <el-option v-for="item in optionSoptionSprocesses" :key="item.name" :label="item.name" :value="item.name">
                  <el-select @change="changeOptionSoptionSprocesses" v-model="processInspectVo.techfather"
                    placeholder="请选择" style="width: 210px;" size="small">
                    <el-option v-for="item in optionSoptionSprocesses" :key="item.name" :label="item.name"
                      :value="item.name">
                                        </el-option>
                                    </el-select>
                                </el-form-item>
@@ -117,7 +133,8 @@
                            <el-col :span="7">
                                <el-form-item label="工艺名称:">
                                    <el-select v-model="processInspectVo.techname" placeholder="请选择" style="width: 210px;" size="small">
                                        <el-option v-for="item in optionTechnology" :key="item.id" :label="item.name" :value="item.id + '-' + item.name">
                    <el-option v-for="item in optionTechnology" :key="item.id" :label="item.name"
                      :value="item.id + '-' + item.name">
                                        </el-option>
                                    </el-select>
                                </el-form-item>
@@ -126,7 +143,8 @@
                        <el-row :gutter="230">
                            <el-col :span="7">
                                <el-form-item label="单位:">
                                    <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.unit" placeholder="请输入单位" />
                  <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.unit"
                    placeholder="请输入单位" />
                                </el-form-item>
                            </el-col>
                            <el-col :span="7">
@@ -155,17 +173,21 @@
            > -->
                    </el-col>
                </el-row>
                <el-table border :data="inspectionItems" max-height="420" :span-method="handleSpanMethod" height="calc(100vh - 550px)" style="width: 100%">
        <el-table border :data="inspectionItems" max-height="420" :span-method="handleSpanMethod"
          height="calc(100vh - 550px)" style="width: 100%">
                    <el-table-column type="index" label="序号" width="60"></el-table-column>
                    <el-table-column label="项目" prop="father"></el-table-column>
                    <el-table-column prop="name" label="指标"></el-table-column>
                    <el-table-column prop="unit" label="单位"></el-table-column>
                    <el-table-column prop="required" label="标准值"></el-table-column>
                    <el-table-column prop="internal" label="内测值"></el-table-column>
                    <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="检测值" min-width="100" style="text-align: center;">
          <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="检测值"
            min-width="100" style="text-align: center;">
                        <template slot-scope="scope">
                            <el-tooltip :disabled="scope.row.dname != null" class="item" effect="dark" content="请先选择设备!" placement="top-start">
                                <el-input :disabled="scope.row.dname === null" v-model="scope.row.empiricalValueAddss[index]" @blur="changeState(scope.row, index)" placeholder="请输入检测值"></el-input>
              <el-tooltip :disabled="scope.row.dname != null" class="item" effect="dark" content="请先选择设备!"
                placement="top-start">
                <el-input :disabled="scope.row.dname === null" v-model="scope.row.empiricalValueAddss[index]"
                  @blur="changeState(scope.row, index)" placeholder="请输入检测值"></el-input>
                            </el-tooltip>
                        </template>
                    </el-table-column>
@@ -174,7 +196,8 @@
                            <el-button v-if="!scope.row.isSelectDevice" type="text" @click="clickTableSelect(scope)">{{
                scope.row.dname == null ? "请选择" : scope.row.dname
              }}</el-button>
                            <el-select v-if="scope.row.isSelectDevice" style="width: 100%;" @change="clickNodeSure(scope.row)" v-model="filterText" placeholder="请选择">
              <el-select v-if="scope.row.isSelectDevice" style="width: 100%;" @change="clickNodeSure(scope.row)"
                v-model="filterText" placeholder="请选择">
                                <el-option v-for="item in materialOptions" :key="item.id" :label="item.device" :value="item.id">
                                </el-option>
                            </el-select>
@@ -219,22 +242,150 @@
        <div class="newPage" v-if="showLook">
            <processInspectionLook :rowInfo="rowInfp" />
        </div>
    <!-- <div class="newPage" v-if="reportlook">
      <index />
    </div> -->
    <el-dialog
     title="过程检验报告" :visible.sync="reportlook"  width="40%">
     <template>
    <div ref="print">
      <div style="margin:0 auto;">
          <!-- <div style="text-align:center;margin-top:10px;">过程检验报告</div> -->
    <table class="table table-striped table-bordered" align="center" border style="width: 100%;height: 700px;" valign="center">
      <tr>
        <td class="column" colspan="2" rowspan="2" > </td>
        <td class="column" colspan="2" ><p>记录名称:检验记录表</p>Table: Inspection Record</td>
        <td class="column" colspan="2"><p>保存期限:25年</p> Storage Life: 25 years</td>
      </tr>
      <tr>
          <td  class="column" colspan="2" > 记录编号</td>
          <td  class="column" colspan="2" > 归档部门</td>
      </tr>
      <tr>
        <td class="column"><p>零件名称</p> Part Description</td>
        <td  class="value"></td>
        <td class="column"><p>型号</p> Model</td>
        <td class="value"></td>
        <td class="column"><p>加工单号</p> Order No</td>
        <td class="value"></td>
      </tr>
      <tr>
        <td class="column"><p>检验仪器</p> Inspection instrument</td>
        <td class="value"></td>
        <td class="column"><p>检验数量</p> Quantity to check</td>
        <td class="value"></td>
        <td class="column"><p>供货单位</p> Supplier</td>
        <td class="value"></td>
      </tr>
      <tr>
        <td class="column"><p>检验项目</p> Inspection Item</td>
        <td class="column" colspan="3"><p><p>检验结果(实测值)</p> Test result (Measured value)</p></td>
        <td class="column" rowspan="2" colspan="2"><p>判定</p> Conclusion</td>
      </tr>
      <tr>
        <td class="column"><p>技术要求</p> Technical Requirement</td>
        <td class="column"><p>公差</p> TOL</td>
        <!-- <td class="daughter" >01</td> -->
      </tr>
      <tr>
        <td class="column"  rowspan="9" colspan="0.5">尺寸</td>
        <td class="value" ></td>
        <td class="column"></td>
        <td class="value" ></td>
      </tr>
      <tr>
        <td class="column"></td>
        <td class="value" colspan="3"></td>
        <td class="column"></td>
      </tr>
      <tr>
        <td class="value" colspan="2"></td>
        <td class="value" colspan="2"></td>
        <td class="value" colspan="2"></td>
      </tr>
      <tr>
        <td class="value" colspan="2"></td>
        <td class="value" colspan="2"></td>
        <td class="value" colspan="2"></td>
      </tr>
      <tr>
        <td class="column" colspan="6"></td>
      </tr>
      <tr>
        <td class="value" colspan="2"></td>
        <td class="value" colspan="2"></td>
        <td class="value" colspan="2"></td>
      </tr>
      <tr>
        <td class="value" colspan="2"></td>
        <td class="value" colspan="2"></td>
        <td class="value" colspan="2"></td>
      </tr>
      <tr>
        <td class="value" colspan="2"></td>
        <td class="value" colspan="2"></td>
        <td class="value" colspan="2"></td>
      </tr>
       <tr>
        <td class="value" colspan="2"></td>
        <td class="value" colspan="2"></td>
        <td class="value" colspan="2"></td>
      </tr>
      <tr>
        <td class="column">材质</td>
        <td class="value" colspan="5"></td>
      </tr>
      <tr >
        <td class="column" >外观性能</td>
        <td class="value" colspan="5" style="text-align:left;">
          <br>
          <br>
          <br>
          <br>
        </td>
      </tr>
      <tr>
        <td class="column">备注</td>
        <td class="value" colspan="5">
          <br>
          <br>
          <br>
          <br>
        </td>
      </tr>
    </table>
      </div>
    </div>
  </template>
    </el-dialog>`
    </div>
</template>
<script>
import processInspectionUpdate from "../view/processInspectionUpdate.vue";
import processInspectionLook from "../view/processInspectionLook.vue";
import processInspectionUpdate from '../view/processInspectionUpdate.vue'
import processInspectionLook from '../view/processInspectionLook.vue'
// import index from '../view/report/index.vue'
export default {
    components: {
        processInspectionUpdate,
        processInspectionLook,
    // index
    },
    data() {
        return {
            showUp: false,
            isAddProject: false,
            showLook: false,
      reportlook: false,
            detailId: 28,
            rowInfp: {},
            search: {
@@ -242,7 +393,7 @@
                pageSize: 1,
                result: "", // 检测状态
                name: "", // 产品名称
                techfather: "", // 工序
        techfather: "" // 工序
            },
            optionsSamplename: [],
            inspectionTable: [],
@@ -267,7 +418,7 @@
                techfather: null,
                techname: null,
                technologyId: null,
                unit: null,
        unit: null
            },
            InspectioniD: null,
            addInspectionform: [
@@ -283,9 +434,9 @@
                    quantity: "",
                    group: "",
                    worker: "",
                    machine: "",
                },
            ],
          machine: ""
        }]
      ,
            inspectionItems: [], // 新增检验项目表格
            inspectionResultForm: [
                {
@@ -293,8 +444,8 @@
                    name: "",
                    inspecter: "",
                    conclusion: "",
                    operation: "",
                },
          operation: ""
        }
            ],
            options: [],
            value: "",
@@ -308,16 +459,16 @@
            defaultProps: {
                // 设备树数据设置
                children: "children",
                label: "name",
        label: "name"
            },
            nodeData: {
                id: 0,
                name: null,
        name: null
            }, // node点击保存当前点击数据
            clickSelectDevice: {
                index: null, // 点击选择存储当前行索引
                rpId: null, // 点击选择存储当前行项目Id
            },
        rpId: null // 点击选择存储当前行项目Id
      }
        };
    },
    watch: {
@@ -330,30 +481,36 @@
        // this.getOptions();
    },
    methods: {
    report() {
      this.reportlook = true
      // this.$nextTick(() => {
      //          this.$print(this.$refs.print);
      //      })
    },
        handleClick(row) {
            this.rowInfp = row;
            this.showLook = true;
      this.rowInfp = row
      this.showLook = true
        },
        combackIndex() {
            this.showAddPage = false;
            this.defaultInitializationTable();
      this.showAddPage = false
      this.defaultInitializationTable()
        },
        updateInsInfo(row) {
            this.rowInfp = row;
            this.showUp = true;
      this.rowInfp = row
      this.showUp = true
        },
        combackMain(val) {
            this.showUp = false;
            this.showLook = false;
      this.showUp = false
      this.showLook = false
            this.defaultInitializationTable(); // 初始化表格数据
            if (val) {
                this.$parent.removeAllTab();
        this.$parent.removeAllTab()
            }
        },
        searchPro() {
            this.search.countSize = this.pageSize;
            this.search.pageSize = this.currentPage;
            this.defaultInitializationTable();
      this.search.countSize = this.pageSize
      this.search.pageSize = this.currentPage
      this.defaultInitializationTable()
        },
        // 点击设备树保存点击记录
        nodeClick(data) {
@@ -366,69 +523,65 @@
        },
        // 获取设备树内容
        getOptions(row) {
            this.$axios
                .get(this.$api.url.inspectionItemChooseDev, {
      this.$axios.get(this.$api.url.inspectionItemChooseDev, {
                    params: {
                        father: row.father,
                        name: row.name,
                        technologyId: this.processInspectVo.technologyId,
                    },
                })
                .then((res) => {
          technologyId: this.processInspectVo.technologyId
        }
      }).then(res => {
                    this.materialOptions = res.data;
                    if (this.materialOptions.length === 1) {
                        this.$message({
                            message: "该项目下只有一个试验设备,无需选择!",
                            type: "warning",
            message: '该项目下只有一个试验设备,无需选择!',
            type: 'warning'
                        });
                        return;
          return
                    }
                    row.isSelectDevice = true;
                    this.filterText = row.did;
        row.isSelectDevice = true
        this.filterText = row.did
                });
        },
        // 点击表格选择触发
        clickTableSelect(scope) {
            // this.centerDialogVisible = true;
            if (this.clickSelectDevice.index != null) {
                this.$set(
                    this.inspectionItems[this.clickSelectDevice.index],
                    "isSelectDevice",
                    false
                );
        this.$set(this.inspectionItems[this.clickSelectDevice.index], 'isSelectDevice', false)
            }
            this.clickSelectDevice.index = scope.$index;
            this.clickSelectDevice.rpId = scope.row.id;
            this.getOptions(scope.row);
      this.getOptions(scope.row)
        },
        // 点击树里面的确定
        clickNodeSure() {
            let select = this.materialOptions.filter((item) => {
                return item.id === this.filterText;
            })[0];
            this.nodeData.id = select.id;
            this.nodeData.name = select.device;
      let select = this.materialOptions.filter(item => {
        return item.id === this.filterText
      })[0]
      this.nodeData.id = select.id
      this.nodeData.name = select.device
            if (this.detailId == null) {
                this.inspectionItems[this.clickSelectDevice.index].did =
                    this.nodeData.id;
                this.inspectionItems[this.clickSelectDevice.index].dname =
                    this.nodeData.name;
        this.inspectionItems[
          this.clickSelectDevice.index
        ].did = this.nodeData.id;
        this.inspectionItems[
          this.clickSelectDevice.index
        ].dname = this.nodeData.name;
                this.centerDialogVisible = false;
            } else {
                this.$axios
                    .post(this.$api.url.inspectionItemUpdateDevByInsId, {
                        id: this.clickSelectDevice.rpId,
                        type: 1,
                        devId: this.nodeData.id,
            devId: this.nodeData.id
                    })
                    .then((res) => {
                        this.getTableData();
          .then(res => {
            this.getTableData()
                        this.centerDialogVisible = false;
                    });
            }
        },
        changeState(row, index) {
            if (row.did != null && row.did != "") {
      if (row.did != null && row.did != '') {
                // let val = row.empiricalValueAddss.filter(item => {
                //   return item != '' && item != null
                // })
@@ -442,44 +595,34 @@
                //   });
                //   return
                // }
                let str = "";
                row.empiricalValueAddss.forEach((e) => {
                    str += e + ",";
                });
                if (
                    str.slice(0, -1) === "" ||
                    str.slice(0, -1) === null ||
                    str.slice(0, -1) === undefined
                ) {
                    return;
        let str = ""
        row.empiricalValueAddss.forEach(e => {
          str += e + ","
        })
        if (str.slice(0, -1) === '' || str.slice(0, -1) === null || str.slice(0, -1) === undefined) {
          return
                }
                this.$axios
                    .post(
                        this.$api.url.inspectionItemlose_focus_update,
                        {
        this.$axios.post(this.$api.url.inspectionItemlose_focus_update, {
                            deviceId: row.did,
                            inspectionItemId: row.id,
                            inspectionValue: str.slice(0, -1),
                        },
                        {
                            headers: { "Content-Type": "application/json" },
                        }
                    )
                    .then((res) => {
                        if (res.message === "内控值输入格式有问题!") {
          inspectionValue: str.slice(0, -1)
        }, {
          headers: { "Content-Type": "application/json" }
        }).then(res => {
          if (res.message === '内控值输入格式有问题!') {
                            this.$message({
                                message: res.message,
                                type: "warning",
              type: 'warning'
                            });
                            return;
            return
                        }
                        row.result = res.data.result;
                        row.username = res.data.username;
                    });
          row.result = res.data.result
          row.username = res.data.username
        })
            } else {
                this.$message({
                    message: "请选择择设备!",
                    type: "warning",
          message: '请选择择设备!',
          type: 'warning'
                });
            }
        },
@@ -494,32 +637,29 @@
                const _col = _row > 0 ? 1 : 0;
                return {
                    rowspan: _row,
                    colspan: _col,
                };
          colspan: _col
        }
            }
            if (columnIndex === 1) {
                const _row = this.spanArr[rowIndex];
                const _col = _row > 0 ? 1 : 0;
                return {
                    rowspan: _row,
                    colspan: _col,
                };
          colspan: _col
        }
            }
        },
        // 合并表格
        mergeTable() {
            this.rowList = [];
            this.spanArr = [];
            this.position = 0;
      this.rowList = []
      this.spanArr = []
      this.position = 0
            this.inspectionItems.forEach((item, index) => {
                if (index === 0) {
                    this.spanArr.push(1);
                    this.position = 0;
                } else {
                    if (
                        this.inspectionItems[index].father ===
                        this.inspectionItems[index - 1].father
                    ) {
          if (this.inspectionItems[index].father === this.inspectionItems[index - 1].father) {
                        this.spanArr[this.position] += 1;
                        this.spanArr.push(0);
                    } else {
@@ -527,24 +667,21 @@
                        this.position = index;
                    }
                }
            });
      })
        },
        changeOptionSoptionSprocesses() {
            this.optionTechnology = [];
            let working = this.optionSoptionSprocesses.filter((item) => {
                return item.name === this.processInspectVo.techfather;
            })[0];
            this.optionTechnology = working.children;
      this.optionTechnology = []
      let working = this.optionSoptionSprocesses.filter(item => {
        return item.name === this.processInspectVo.techfather
      })[0]
      this.optionTechnology = working.children
        },
        addTestProjevt() {
            let val = JSON.parse(JSON.stringify(this.processInspectVo));
            val.techname = this.processInspectVo.techname.split("-")[1];
            val.technologyId = this.processInspectVo.techname.split("-")[0];
            this.processInspectVo.technologyId = val.technologyId;
            this.$axios
                .post(
                    this.$api.url.processInspectAddProcess,
                    {
      let val = JSON.parse(JSON.stringify(this.processInspectVo))
      val.techname = this.processInspectVo.techname.split("-")[1]
      val.technologyId = this.processInspectVo.techname.split("-")[0]
      this.processInspectVo.technologyId = val.technologyId
      this.$axios.post(this.$api.url.processInspectAddProcess, {
                        material: val.material,
                        materialCode: val.materialCode,
                        orderNumber: val.orderNumber,
@@ -554,73 +691,58 @@
                        techname: val.techname,
                        techId: Number(val.technologyId),
                        mtId: Number(val.technologyId),
                        unit: val.unit,
                    },
                    {
                        headers: { "Content-Type": "application/json" },
                    }
                )
                .then((res) => {
        unit: val.unit
      }, {
        headers: { "Content-Type": "application/json" }
      }).then(res => {
                    if (res.code === 201) {
                        this.$message({
                            message: res.message,
                            type: "warning",
            type: 'warning'
                        });
                        return;
          return
                    }
                    this.isAddProject = true;
                    this.detailId = res.data;
                    this.inspectionResultForm[0].id = val.materialCode;
                    this.inspectionResultForm[0].name = val.material;
                    this.getTableData();
                });
        this.isAddProject = true
        this.detailId = res.data
        this.inspectionResultForm[0].id = val.materialCode
        this.inspectionResultForm[0].name = val.material
        this.getTableData()
      })
        },
        getTableData() {
            this.$axios
                .get(this.$api.url.inspectionItemListUser, {
      this.$axios.get(this.$api.url.inspectionItemListUser, {
                    params: {
                        id: this.detailId,
                        type: 1,
                    },
                })
                .then((res) => {
                    this.inspectionItems = res.data;
                    let arr = [];
                    let val = JSON.parse(JSON.stringify(this.inspectionItems));
                    const uName = [];
                    //转成一维数组
                    val.forEach((l) => {
                        let father = l.father;
                        l.children.forEach((c) => {
                            c.father = father;
                            c.empiricalValueAddss = [];
                            if (
                                c.inspectionValue != "" &&
                                c.inspectionValue != null
                            ) {
                                c.empiricalValueAddss =
                                    c.inspectionValue.split(",");
                            } else {
                                c.empiricalValueAddss.push("");
          type: 1
                            }
                            uName.push(c["username"]);
                            c.isSelectDevice = false;
                            arr.push(c);
                        });
                    });
                    this.inspectionItems = arr;
                    let arrSort = JSON.parse(JSON.stringify(arr));
      }).then(res => {
        this.inspectionItems = res.data
        let arr = []
        let val = JSON.parse(JSON.stringify(this.inspectionItems))
        const uName = []
        //转成一维数组
        val.forEach(l => {
          let father = l.father
          l.children.forEach(c => {
            c.father = father
            c.empiricalValueAddss = []
            if (c.inspectionValue != '' && c.inspectionValue != null) {
              c.empiricalValueAddss = c.inspectionValue.split(",");
            } else {
              c.empiricalValueAddss.push("")
            }
            uName.push(c['username'])
            c.isSelectDevice = false
            arr.push(c)
          })
        })
        this.inspectionItems = arr
        let arrSort = JSON.parse(JSON.stringify(arr))
                    //根据集合对象数组长度排序
                    arrSort.sort((a, b) => {
                        if (
                            a.empiricalValueAddss.length <
                            b.empiricalValueAddss.length
                        ) {
          if (a.empiricalValueAddss.length < b.empiricalValueAddss.length) {
                            return -1; // a排在b前面
                        } else if (
                            a.empiricalValueAddss.length >
                            b.empiricalValueAddss.length
                        ) {
          } else if (a.empiricalValueAddss.length > b.empiricalValueAddss.length) {
                            return 1; // a排在b后面
                        } else {
                            return 0; // 保持相对顺序不变
@@ -628,49 +750,44 @@
                    });
                    // console.log(arrSort);
                    console.log(uName);
                    let name = [...new Set(uName)].filter(
                        (item) => item !== null
                    );
                    let rname = "";
                    name.forEach((m) => {
                        rname += m + ",";
                    });
                    this.inspectionResultForm[0].inspecter = rname.slice(0, -1);
                    this.empiricalValueAdd =
                        arrSort[arrSort.length - 1].empiricalValueAddss.length;
                    this.mergeTable(arr);
                });
        let name = [...new Set(uName)].filter(item => item !== null);
        let rname = ''
        name.forEach(m => {
          rname += m + ","
        })
        this.inspectionResultForm[0].inspecter = rname.slice(0, -1)
        this.empiricalValueAdd = arrSort[arrSort.length - 1].empiricalValueAddss.length
        this.mergeTable(arr)
      })
        },
        selectSample() {
            let sample = this.optionsSamplename.filter((item) => {
                return item.name === this.processInspectVo.material;
            })[0];
            this.processInspectVo.techfather = null;
            this.processInspectVo.techname = null;
            this.processInspectVo.materialCode = sample.code;
            this.processInspectVo.specificationsModel = sample.specifications;
            this.processInspectVo.unit = sample.unit;
            this.optionSoptionSprocesses = [];
            this.optionSoptionSprocesses = sample.children;
      let sample = this.optionsSamplename.filter(item => {
        return item.name === this.processInspectVo.material
      })[0]
      this.processInspectVo.techfather = null
      this.processInspectVo.techname = null
      this.processInspectVo.materialCode = sample.code
      this.processInspectVo.specificationsModel = sample.specifications
      this.processInspectVo.unit = sample.unit
      this.optionSoptionSprocesses = []
      this.optionSoptionSprocesses = sample.children
        },
        selectInfoByOrderId() {
            this.$axios
                .get(this.$api.url.chooseMaterProcessInspect, {
      this.$axios.get(this.$api.url.chooseMaterProcessInspect, {
                    params: {
                        orderNumber: this.processInspectVo.orderNumber,
                    },
                })
                .then((res) => {
          orderNumber: this.processInspectVo.orderNumber
        }
      }).then(res => {
                    if (res.data.length > 0) {
                        console.log(res.data);
                        this.optionsSamplename = res.data;
          this.optionsSamplename = res.data
                    } else {
                        this.$message({
                            message: "没有该订单号!",
                            type: "warning",
            message: '没有该订单号!',
            type: 'warning'
                        });
                    }
                });
      })
        },
        // 当前页改变时触发 跳转其他页
        handleCurrentChange(val) {
@@ -686,7 +803,7 @@
        defaultInitializationTable() {
            this.$axios
                .post(this.$api.url.selectProcessInspectsList, this.search)
                .then((res) => {
        .then(res => {
                    this.inspectionTableTotal = res.data.total;
                    this.inspectionTable = res.data.row;
                });
@@ -702,7 +819,7 @@
                techfather: "",
                techname: "",
                technologyId: 0,
                unit: "",
        unit: ""
            };
            this.inspectionItems.push(obj);
        },
@@ -714,12 +831,9 @@
        clickDeleteInspectionColumn() {
            if (this.empiricalValueAdd - 1 === 0) {
            } else {
                if (
                    this.empiricalValueAddMaxNumber !=
                    this.empiricalValueAdd - 1
                ) {
        if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
                    this.empiricalValueAdd = this.empiricalValueAdd - 1;
                    this.inspectionItems.forEach((i) => {
          this.inspectionItems.forEach(i => {
                        i.testValueList.splice(this.empiricalValueAdd, 1);
                    });
                }
@@ -728,11 +842,11 @@
        // 添加检验值列
        clickAddInspectionColumn() {
            this.empiricalValueAdd = this.empiricalValueAdd + 1;
        },
    }
    },
    created() {
        this.defaultInitializationTable(); // 初始化表格数据
    },
  }
};
</script>
@@ -764,10 +878,6 @@
.content-body .rawPage {
    background-color: #fff;
    overflow: hidden;
}
.rawPage span {
    white-space: nowrap;
}
.inspectionTable {
@@ -820,4 +930,40 @@
    float: right;
    font-size: 13px !important;
}
/* .table{
  border-collapse: collapse;
  border-spacing: 0;
  background-color: transparent;
  display: table;
  width: 100%;
  max-width: 100%;
  width: 800px;
  margin:0 auto;
} */
/* .table td{
  text-align:center;
  vertical-align:middle;
  font-size: 14px;
  font-family: 'Arial Normal', 'Arial';
  color: #333333;
  padding: 8px 12px;
} */
/* .table-bordered {
  border: 1px solid #ddd;
}  */
.column{
  width:auto;
  height:30px;
  font-size: 12px;
  text-align:center
  /* border:1px solid #333;
  background: #f1f1f1; */
}
.value{
  width:70px;
  height:30px;
  border:1px solid #333;
}
</style>
src/components/view/processInspectionUpdate.vue
@@ -24,29 +24,31 @@
                            <el-form-item label="产品名称:">
                                <el-select style="width: 210px;" size="small" disabled @change="selectSample"
                                    v-model="processInspectVo.material" placeholder="请选择产品">
                                    <el-option v-for="item in optionsSamplename" :key="item.value" :label="item.name" :value="item.name">
                                    <el-option v-for="item in optionsSamplename" :key="item.value" :label="item.name"
                                        :value="item.name">
                                    </el-option>
                                </el-select>
                            </el-form-item>
                        </el-col>
                        <el-col :span="7">
                            <el-form-item label="产品编码:">
                                <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.materialCode"
                                    placeholder="请输入产品编码" />
                                <el-input style="width: 210px;" size="small" disabled
                                    v-model="processInspectVo.materialCode" placeholder="请输入产品编码" />
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-row :gutter="230">
                        <el-col :span="7">
                            <el-form-item label="规格型号:">
                                <el-input style="width: 210px;" size="small" disabled v-model="processInspectVo.specificationsModel"
                                    placeholder="请输入规格型号" />
                                <el-input style="width: 210px;" size="small" disabled
                                    v-model="processInspectVo.specificationsModel" placeholder="请输入规格型号" />
                            </el-form-item>
                        </el-col>
                        <el-col :span="7">
                            <el-form-item label="工序名称:">
                                <el-select @change="changeOptionSoptionSprocesses" disabled v-model="processInspectVo.techfather"
                                    placeholder="请选择" style="width: 210px;" size="small">
                                <el-select @change="changeOptionSoptionSprocesses" disabled
                                    v-model="processInspectVo.techfather" placeholder="请选择" style="width: 210px;"
                                    size="small">
                                    <el-option v-for="item in optionSoptionSprocesses" :key="item.name" :label="item.name"
                                        :value="item.name">
                                    </el-option>
@@ -55,8 +57,8 @@
                        </el-col>
                        <el-col :span="7">
                            <el-form-item label="工艺名称:">
                                <el-select v-model="processInspectVo.techname" disabled placeholder="请选择" style="width: 210px;"
                                    size="small">
                                <el-select v-model="processInspectVo.techname" disabled placeholder="请选择"
                                    style="width: 210px;" size="small">
                                    <el-option v-for="item in optionTechnology" :key="item.id" :label="item.name"
                                        :value="item.id + '-' + item.name">
                                    </el-option>
@@ -89,7 +91,8 @@
                <el-col :span="12" class="inspectionProject_span">检验项目</el-col>
                <el-col v-if="!isUpBtn" :span="12" class="inspectionProject_span">
                    <el-button size="mini" @click="clickDeleteInspectionColumn()">删除检验值列</el-button>
                    <el-button style="margin-right: 30px;" size="mini" @click="clickAddInspectionColumn()">添加检验值列</el-button>
                    <el-button style="margin-right: 30px;" size="mini"
                        @click="clickAddInspectionColumn()">添加检验值列</el-button>
                    <!-- <el-button
              size="mini"
              style="margin-right: 30px;"
@@ -165,10 +168,11 @@
            <div class="div_device_dialog">
                <el-input placeholder="输入关键字进行过滤" v-model="filterText" style="margin-bottom: 6px;">
                </el-input>
                <el-tree class="filter-tree" :data="materialOptions" :props="defaultProps" default-expand-all highlight-current
                    @node-click="nodeClick" :filter-node-method="filterNode" ref="tree">
                <el-tree class="filter-tree" :data="materialOptions" :props="defaultProps" default-expand-all
                    highlight-current @node-click="nodeClick" :filter-node-method="filterNode" ref="tree">
                    <div class="custom-tree-node" slot-scope="{ data }">
                        <span><i :class="`node_i ${data.children ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i>{{ data.name }}</span>
                        <span><i :class="`node_i ${data.children ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i>{{
                            data.name }}</span>
                    </div>
                </el-tree>
            </div>
@@ -317,6 +321,41 @@
                    });
                    return
                }
            let pro = this.inspectionItems.filter(item => {
                return item.result === 0;
            })
            if (pro.length > 0) {
                this.$prompt('请输入不合格数量', '不合格数量', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    inputPattern: /^\d+$/,
                    inputErrorMessage: '请输入正确数字格式'
                }).then(({ value }) => {
                    this.$axios.post(this.$api.url.processInspectUpdateProcessInspectsById, {
                        id: this.detailId,
                        number: value
                    }).then(res => {
                        if (res.code == 200) {
                            // this.$message({
                            //     message: '上报成功',
                            //     type: 'success'
                            // });
                            this.$parent.combackMain(true)
                        } else {
                            this.$message({
                                message: res.message,
                                type: 'warning'
                            });
                        }
                    })
                }).catch(() => {
                    this.$message({
                        type: 'info',
                        message: '取消输入'
                    });
                });
            } else {
                this.$axios.post(this.$api.url.processInspectUpdateProcessInspectsById, {
                    id: this.detailId
                }).then(res => {
@@ -341,6 +380,7 @@
                    }
                })
            }
            },
            handleClick() {},
            updateInsInfo(row) {
src/components/view/rawInsDetail.vue
@@ -6,8 +6,7 @@
                <el-col :span="12" style="text-align: right;">
                    <el-button icon="el-icon-circle-plus-outline" v-show="detailId === null" @click="addNewRawInspect"
                        style="background-color: #004ea2; color: #ffffff;">提 交</el-button>
                    <el-button icon="el-icon-back" @click="
              () => {
                    <el-button icon="el-icon-back" @click="() => {
                goBack();
              }
            ">返 回</el-button>
@@ -19,7 +18,8 @@
                <el-row>
                    <el-col :span="7">
                        <el-form-item label="来料日期:">
                            <el-input v-if="detailId !== null" :disabled="detailId !== null" v-model="detailInfo.formTime"></el-input>
                            <el-input v-if="detailId !== null" :disabled="detailId !== null"
                                v-model="detailInfo.formTime"></el-input>
                            <el-date-picker v-else type="date" value-format="yyyy-MM-dd" v-model="detailInfo.formTime"
                                placeholder="选择日期">
                            </el-date-picker>
@@ -27,12 +27,15 @@
                    </el-col>
                    <el-col :span="7">
                        <el-form-item label="原材料名称:">
                            <el-input v-if="detailId !== null" :disabled="detailId !== null" v-model="detailInfo.name"></el-input>
                            <el-input v-else v-model="detailInfo.name" placeholder="请输入原材料名称"></el-input> </el-form-item></el-col>
                            <el-input v-if="detailId !== null" :disabled="detailId !== null"
                                v-model="detailInfo.name"></el-input>
                            <el-input v-else v-model="detailInfo.name" placeholder="请输入原材料名称"></el-input>
                        </el-form-item></el-col>
                    <el-col :span="7">
                        <el-form-item label="原材料编码:">
                            <el-input v-if="detailId !== null" :disabled="detailId !== null" v-model="detailInfo.code"></el-input>
                            <el-input v-else v-model="detailInfo.code" placeholder="请输入原材料编码"></el-input>
                            <el-input v-if="detailId !== null" :disabled="detailId !== null"
                                v-model="detailInfo.code"></el-input>
                            <el-input @blur="blurCode" v-else v-model="detailInfo.code" placeholder="请输入原材料编码"></el-input>
                        </el-form-item>
                    </el-col>
                </el-row>
@@ -46,8 +49,10 @@
                    </el-col>
                    <el-col :span="7">
                        <el-form-item label="单位:">
                            <el-input v-if="detailId !== null" :disabled="detailId !== null" v-model="detailInfo.runit"></el-input>
                            <el-input v-else placeholder="请输入检验单位" :disabled="detailId !== null" v-model="detailInfo.unit"></el-input>
                            <el-input v-if="detailId !== null" :disabled="detailId !== null"
                                v-model="detailInfo.runit"></el-input>
                            <el-input v-else placeholder="请输入检验单位" :disabled="detailId !== null"
                                v-model="detailInfo.unit"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="7">
@@ -82,7 +87,8 @@
                <el-col :span="12" style="line-height: 32px;">检验项目</el-col>
                <el-col :span="12" style="line-height: 32px; padding-top: 6px;">
                    <el-button style="float: right;" @click="clickDeleteInspectionColumn()">删除检验值列</el-button>
                    <el-button style="float: right;margin-right: 30px;" @click="clickAddInspectionColumn()">添加检验值列</el-button>
                    <el-button style="float: right;margin-right: 30px;"
                        @click="clickAddInspectionColumn()">添加检验值列</el-button>
                    <el-button v-if="detailId == null" style="float: right;margin-right: 30px;"
                        @click="clickAddLine()">添加检验行</el-button>
                </el-col>
@@ -94,7 +100,10 @@
                </el-table-column>
                <el-table-column prop="rpName" label="项目" width="212">
                    <template slot-scope="scope">
                        <el-input v-if="detailId == null" v-model="scope.row.name" placeholder="请输入项目名称"></el-input>
                        <!-- <el-input v-if="detailId == null" v-model="scope.row.name" placeholder="请输入项目名称"></el-input> -->
                        <el-autocomplete v-if="detailId == null" class="inline-input" v-model="scope.row.name"
                            :fetch-suggestions="querySearch" placeholder="请输入项目名称" @select="handleSelect(scope.row)"
                            @blur="handleSelect(scope.row)"></el-autocomplete>
                        <el-input v-else v-model="scope.row.rpName" disabled></el-input>
                    </template>
                </el-table-column>
@@ -159,8 +168,8 @@
                <el-table-column prop="name" label="物料名称"> </el-table-column>
                <el-table-column v-if="detailId != null" prop="uName" label="检验员">
                    <template slot-scope="scope">
                        <span v-for="item in scope.row.uName" :key="item && item.uName"
                            :style="{ marginRight: '8px' }">{{ item }}</span>
                        <span v-for="item in scope.row.uName" :key="item && item.uName" :style="{ marginRight: '8px' }">{{
                            item }}</span>
                    </template>
                </el-table-column>
                <el-table-column prop="testState" label="检验结论">
@@ -173,7 +182,7 @@
                </el-table-column>
                <el-table-column v-if="detailId !== null" label="操作" width="120">
                    <template>
                        <el-button type="text" size="small" @click.once="submitSave">上报</el-button>
                        <el-button type="text" size="small" @click="submitSave">上报</el-button>
                    </template>
                </el-table-column>
            </el-table>
@@ -182,12 +191,10 @@
            <div class="div_device_dialog">
                <el-input placeholder="输入关键字进行过滤" v-model="filterText" style="margin-bottom: 6px;">
                </el-input>
                <el-tree class="filter-tree" :data="materialOptions" :props="defaultProps" default-expand-all highlight-current
                    @node-click="nodeClick" :filter-node-method="filterNode" ref="tree">
                <el-tree class="filter-tree" :data="materialOptions" :props="defaultProps" default-expand-all
                    highlight-current @node-click="nodeClick" :filter-node-method="filterNode" ref="tree">
                    <div class="custom-tree-node" slot-scope="{ data }">
                        <span><i :class="
                  `node_i ${
                    data.children ? 'el-icon-folder-opened' : 'el-icon-tickets'
                        <span><i :class="`node_i ${data.children ? 'el-icon-folder-opened' : 'el-icon-tickets'
                  }`
                "></i>
                            {{ data.name }}</span>
@@ -244,6 +251,8 @@
                centerDialogVisible: false,
                // 详情页就是详情信息
                detailInfo: {},
            //产品信息
            ifsInfo: {},
                // 表格
                projectTable: [],
                // 新建检验单参数对象
@@ -261,7 +270,8 @@
                clickSelectDevice: {
                    index: "", // 点击选择存储当前行索引
                    rpId: "" // 点击选择存储当前行项目Id
                }
            },
            restaurants: []
            };
        },
        watch: {
@@ -270,6 +280,56 @@
            }
        },
        methods: {
        blurCode() {
            // this.detailId=10
            let data = {
                code: this.detailInfo.code
            }
            console.log(data);
            this.$axios.post(
                this.$api.url.rawInspectChooseIFS, {
                code: this.detailInfo.code
            }
            ).then(res => {
                this.ifsInfo = res.data
                console.log("ifs", this.ifsInfo);
                this.$set(this.detailInfo, "formTime", this.ifsInfo.formTime)
                this.detailInfo.formTime = this.ifsInfo.formTime
                this.detailInfo.name = this.ifsInfo.name
                this.detailInfo.supplier = this.ifsInfo.supplier
                this.detailInfo.unit = this.ifsInfo.unit
                this.detailInfo.userName = this.ifsInfo.userName
                this.detailInfo.number = this.ifsInfo.number
                this.detailInfo.specifications = this.ifsInfo.specifications
                this.restaurants = JSON.parse(JSON.stringify(this.ifsInfo.rawInsProducts))
                this.restaurants.forEach(item => {
                    this.$set(item, "value", item.name)
                })
                console.log("restaurants", this.restaurants);
            })
        },
        querySearch(queryString, cb) {
            var restaurants = this.restaurants;
            var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
            // 调用 callback 返回建议列表的数据
            cb(results);
        },
        createFilter(queryString) {
            return (restaurant) => {
                return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
            };
        },
        handleSelect(row) {
            let select = this.restaurants.filter(item => {
                return item.name === row.name
            })[0]
            if (select != undefined) {
                this.$set(row, "internal", select.internal)
                this.$set(row, "required", select.required)
                this.$set(row, "unit", select.unit)
                //检验值
            }
        },
            assertTest(row) {
                // let fuArr=['>', '<', '=']
                // if(!fuArr.includes(row.required[0])){
@@ -379,14 +439,39 @@
                    this.getDetailInfo(); //重新刷新信息数据
                }
            },
            async submitSave() {
                const res = await this.$axios.post(
         submitSave() {
            let pro = this.projectTable.filter(item => {
                return item.testState === 0;
            })
            if (pro.length > 0) {
                this.$prompt('请输入不合格数量', '不合格数量', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    inputPattern: /^\d+$/,
                    inputErrorMessage: '请输入正确数字格式'
                }).then(({ value }) => {
                    this.$axios.post(
                        this.$api.url.updateRawInspectsById+`${this.detailId}`, {"number": value }
                    ).then(res => {
                        this.$message.success("提交成功");
                        this.getDetailInfo();
                        this.goBack()
                    });
                }).catch(() => {
                    this.$message({
                        type: 'info',
                        message: '取消输入'
                    });
                });
            }else{
             this.$axios.post(
                    this.$api.url.updateRawInspectsById + `${this.detailId}`
                ).then(res => {
                    this.$message.success("提交成功");
                    this.getDetailInfo();
                    this.goBack()
                });
            }
            },
            // 获取设备树内容
            getOptions() {
src/components/view/sale.vue
@@ -119,7 +119,7 @@
                        :icon="isSync ? 'el-icon-loading' : 'el-icon-refresh'">同步</el-button>
                    <el-button type="primary" icon="el-icon-plus" @click="openAddDia">新增</el-button>
                    <el-button icon="el-icon-delete" @click="delSales">删除</el-button>
                    <el-button icon="el-icon-download">导出</el-button>
                    <el-button icon="el-icon-download" @click="exportSale">导出</el-button>
                </el-col>
            </el-row>
        </div>
@@ -160,7 +160,7 @@
                        <el-tag effect="dark" size="mini" style="font-size: 8px;">{{scope.row.order_type}}</el-tag>
                    </template>
                </el-table-column>
                <el-table-column prop="code" label="合同编号" width="220">
                <el-table-column prop="code" label="合同编号" >
                </el-table-column>
                <el-table-column prop="name" label="工程名称" width="120">
                </el-table-column>
@@ -174,12 +174,13 @@
                    <template slot-scope="scope">
                        <span style="color: #34BD66;" v-if="scope.row.type == 1">通过</span>
                        <span style="color: #E84738;" v-else-if="scope.row.type == 0">不通过</span>
                        <span v-else>{{null}}</span>
                        <span style="color: #ff9900;" v-else>未审核</span>
                    </template>
                </el-table-column>
                <el-table-column label="操作" width="220">
                    <template slot-scope="scope">
                        <span class="table_do" @click="changeShowDetail(scope.row)">&nbsp;查看详情&nbsp;</span>
                        <span class="table_do" @click="downloadFile(scope.row)">&nbsp;下载附件&nbsp;</span>
                        <span class="table_do" v-if="scope.row.type == 2" @click="saleCheck(scope)">&nbsp;审核&nbsp;</span>
                        <span class="table_do" v-else>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
                        <span class="table_do" v-if="scope.row.type == 2"
@@ -450,6 +451,56 @@
        this.selectRawInspectsList()
    },
    methods: {
        downloadFile(row) {
            let baseIp = "http://192.168.18.16:9999"
            this.axios.post(this.$api.url.saleDownload, {
                id: row.id
            }).then(res => {
                const fileUrls = []; // 文件的urls
                res.data.forEach(item=>{
                    let url=baseIp+item
                    fileUrls.push(url)
                })
                const downloadFile = (url, fileName) => {
                        const link = document.createElement('a');
                        link.href = url;
                        link.download = fileName;
                        // link.style.display = 'none';
                        document.body.appendChild(link);
                        link.click();
                        document.body.removeChild(link);
                    };
                    console.log(fileUrls);
                    fileUrls.forEach((url, index) => {
                        let s=url.split(".")
                        const fileName = row.name+`附件(${index + 1}).`+s[s.length-1];
                        downloadFile(url, fileName);
                    });
            })
        },
        //销售订单导出
        exportSale(){
            this.$axios.post(this.$api.url.exportSale,{
                    delTime: this.search.delTime,
                    name: this.search.name,
                    type: this.search.type,
                    orderNumber: this.search.code
                },{responseType:'blob',headers:{"Content-Type":"application/json"}}).then((res)=>{
                const result = res;
                var nameList = result.headers['content-disposition'];
                nameList = decodeURI(nameList);
                var fileName = nameList.split('=')[1];
                const blob = new Blob([result.data,{type: 'application/vnd.ms-excel'}]);
                const link = document.createElement('a');
                link.download = fileName;
                const URL = window.URL || window.webkitURL;
                link.href= URL.createObjectURL(blob);
                document.body.appendChild(link);
                link.click();
                document.body.removeChild(link);
            }).catch()
        },
        closeDialog() {
            this.addData = {
                orderNumber: null,
src/components/view/self-inspection.vue
@@ -113,7 +113,6 @@
                <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="addend">新增</el-button>
                    <!-- <el-button icon="el-icon-edit-outline"  @click="modify">修改</el-button> -->
                    <el-button icon="el-icon-delete" @click="dels">删除</el-button>
                </el-col>
            </el-row>
@@ -121,22 +120,9 @@
        <div class="choose">
            <span>类型:</span>
            <el-select v-model="search.type" size="small" @change="TYpe" placeholder="请选择" style="width: 224px;margin-right: 30px;">
                <el-option label="橡胶连接器" :value="0"></el-option>
                <el-option label="金属连接器" :value="1"></el-option>
                <el-option label="湿插拔电连接器" :value="2"></el-option>
                <el-option label="分支组件" :value="3"></el-option>
                <el-option v-for="(a, ai) in bigType" :key="ai" :value="a">
                </el-option>
            </el-select>
            <!-- <span>工序:</span> -->
            <!-- <el-select v-model="search.name" size="small" placeholder="请选择" style="width: 224px;margin-right: 30px;">
                <el-option v-for="(a, ai) in process" key="ai" :label="a.name" :value="a.id"></el-option>
            </el-select>
            <span>项目:</span>
            <el-select v-model="search.name" size="small" placeholder="请选择" style="width: 224px;margin-right: 30px;">
                <el-option v-for="(a, ai) in product" key="ai" :label="a.name" :value="a.id"></el-option>
            </el-select>
            <el-button size="mini" @click="clean()"><span>重 置</span></el-button>
            <el-button size="mini" type="primary" style="background: #004EA2;"><span>查
                    询</span></el-button> -->
        </div>
        <div class="thing">
            <div class="left">
@@ -147,9 +133,6 @@
                    <div class="custom-tree-node" slot-scope="{ node, data }">
                        <span><i :class="`node_i ${data.code != '[2]'?'el-icon-folder-opened':'el-icon-tickets'}`"></i>
                            {{data.code}} {{ data.name }}</span>
                        <!-- <el-button type="text" size="mini" @click.stop="remove(node, data)">
                            <i class="el-icon-delete"></i>
                        </el-button> -->
                    </div>
                </el-tree>
            </div>
@@ -384,6 +367,7 @@
                checkTreeNode: {
                    id:'',
                },
                bigType: [],
                tableData: [],
                upIndex: 0,
                selects: [],
@@ -402,10 +386,20 @@
            }
        },
        mounted() {
            this.chooseType()
            this.selectAllleft()
            this.selectAllSelf()
        },
        methods: {
            chooseType() {
                this.$axios.get(this.$api.url.chooseType).then(res => {
                    this.bigType = res.data
                    this.typeselect = res.data[0]
                    this.search.type = res.data[0]
                    this.selectAllTechTem();
                    this.selectAllTechNam();
                })
            },
             selectDataList() {
                this.list.forEach(a => {
                    a.code = '[1]'
src/components/view/standard.vue
@@ -48,7 +48,7 @@
            <el-option :value="0" label="工艺路线"></el-option>
            <el-option :value="1" label="技术指标"></el-option>
            <el-option :value="2" label="物料清单"></el-option>
            <!-- <el-option :value="3" label="生产工艺"></el-option> -->
            <el-option :value="3" label="生产工艺"></el-option>
          </el-select>
          <span>版本:</span>
          <el-select v-model="versionVal" @change="verevent" size="small" style="width: 13vw;margin-right: 15px;" placeholder="请选择">
src/components/view/technology.vue
src/main.js
@@ -23,9 +23,9 @@
Vue.use(qs);
Vue.use(api);
// const javaApi = 'http://192.168.14.249:8001'
const javaApi = 'http://localhost:8001'
const javaApi = 'http://127.0.0.1:8001/'
// const javaApi = 'http://127.0.0.1:8001/'
@@ -67,6 +67,9 @@
})
axios.interceptors.response.use(res => {
    if(res.config.responseType === 'blob'){
        return res;
    }
    return res.data
}, async function (err) {
    if (JSON.stringify(err).indexOf('timeout of') > -1) {
src/view/index.vue
@@ -352,6 +352,18 @@
                v: "WMS管理",
                i: "font icon-a-Inventorydumprequest",
                c: [{
                                k: 15,
                                v: "原材料库存",
                                i: "font icon-shouye",
                                u: ""
                            },
                            {
                                k: 16,
                                v: "回单管理",
                                i: "font icon-shouye",
                                u: ""
                            },
                            {
                    k: 17,
                    v: "半成品库存",
                    i: "font icon-shouye",
@@ -388,6 +400,12 @@
                    u: "rawInsBox"
                },
                {
                                k: 4,
                                v: "原材料不合格品",
                                i: "font icon-shouye",
                                u: "rawUnqualifiedBox"
                            },
                            {
                    k: 5,
                    v: "过程检验",
                    i: "font icon-shouye",
@@ -395,7 +413,7 @@
                },
                {
                    k: 6,
                    v: "产品检验",
                                v: "成品检验",
                    i: "font icon-shouye",
                    u: "finishedProductInspection"
                },
@@ -454,6 +472,12 @@
                    u: "record-content"
                },
                {
                                k: 24,
                                v: "自检项目维护",
                                i: "font icon-shouye",
                                u: "self-inspection"
                            },
                            {
                    k: 25,
                    v: "技术指标维护",
                    i: "font icon-shouye",
@@ -476,6 +500,12 @@
                    v: "物料清单维护",
                    i: "font icon-shouye",
                    u: "mbom"
                            },
                            {
                                k: 30,
                                v: "生产工艺维护",
                                i: "font icon-shouye",
                                u: "equipmentmaintain"
                }
                ]
            }