Fixiaobai
2023-09-24 749e0a6d04ad140cea2b72182dcfa601b96630e2
	modified:   src/assets/api/controller.js
modified: src/components/view/Technicalindex.vue
modified: src/components/view/rawInsDetail.vue
modified: src/main.js
已修改4个文件
190 ■■■■ 文件已修改
src/assets/api/controller.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/Technicalindex.vue 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/rawInsDetail.vue 97 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/api/controller.js
@@ -48,6 +48,7 @@
    rawSelectDevice: "/rawInsProduct/selectDevice", //查询设备信息
    addRawInspects: "/rawInspect/addRawInspects", // 添加
    updateDevByRpId: "/rawInsProduct/updateDevByRpId", // 更改设备
    rawInspectChooseIFS: "/rawInspect/chooseIFS",//通过设备编码得到信息
}
//不合格原材料
const unqualifiedaa = {
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,19 @@
            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 +372,6 @@
            },
            //递归子级
            toggleSelect(data, flag, type) {
                // console.log('222');
                if (type === "all") {
                    if (data.length > 0) {
                        data.forEach((item) => {
@@ -377,7 +417,6 @@
                    }
                }).then(res => {
                    this.edit = res.data[0]
                    console.log(this.edit);
                })
            },
            childrenClick(val) {
@@ -386,7 +425,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 +445,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 +469,7 @@
                })
            },
            dels() {
                let ee = []
                console.log(this.selects);
                this.selects.forEach(el => {
                    if (el.children) {
                        el.children.forEach(ele => {
@@ -444,7 +479,6 @@
                })
                // cc.splice(0,1)
                this.delete = ee.join(',')
                console.log(this.delete);
                this.delAllTechskill()
                this.$message.success('删除完成')
            },
@@ -454,7 +488,6 @@
                this.form = {};
            },
            electadd(value) {
                console.log(value);
                this.higherlevel.push({});
                this.form.father = value;
            },
@@ -476,7 +509,6 @@
            },
            TYpe(val) {
                this.typeselect = val
                console.log(this.typeselect);
                this.selectAllleft()
            },
            edittype(val) {
@@ -492,7 +524,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 +531,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 +544,6 @@
                    }
                }).then(res => {
                    this.tableData = res.data;
                    console.log(this.tableData);
                });
            },
            //
@@ -531,7 +559,6 @@
                    }
                }).then(res => {
                    this.tableData = res.data;
                    console.log(this.tableData);
                });
            },
            craftrow(val) {
@@ -540,14 +567,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 +587,6 @@
                    }
                }).then(res => {
                    this.process = res.data;
                    console.log(this.process);
                }, {
                    headers: {
                        "Content-Type": "application/json"
@@ -570,14 +594,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/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,9 @@
                </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 +167,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="检验结论">
@@ -182,12 +190,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 +250,8 @@
                centerDialogVisible: false,
                // 详情页就是详情信息
                detailInfo: {},
            //产品信息
            ifsInfo: {},
                // 表格
                projectTable: [],
                // 新建检验单参数对象
@@ -261,7 +269,8 @@
                clickSelectDevice: {
                    index: "", // 点击选择存储当前行索引
                    rpId: "" // 点击选择存储当前行项目Id
                }
            },
            restaurants: []
            };
        },
        watch: {
@@ -270,6 +279,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])){
src/main.js
@@ -23,7 +23,7 @@
Vue.use(qs);
Vue.use(api);
const javaApi = 'http://192.168.14.249:8001'
const javaApi = 'http://127.0.0.1:8001'
// const javaApi = 'http://127.0.0.1:8001/'