86134
2023-11-07 000b6f8c42b1eb52a75d3fdf58a950a26bfe18f6
Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before
已删除1个文件
已修改15个文件
1140 ■■■■■ 文件已修改
package.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/quality/finishedProduct.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/quality/processInspect.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/quality/rawMaterial.js 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/quality/unqualifiedprocess.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/common/rawMaterial-part.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/common/ztt-table.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipment/equipment/index.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/finishedProductInspection/finishedProduct-form.vue 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/finishedProductInspection/index.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/processInspect/index.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/processInspect/processInspect-form.vue 613 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/processconfiguration/index.vue 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/rawMaterial/ExportMaterial.vue 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/rawMaterial/index.vue 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/rawMaterial/rawMaterial-form.vue 103 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json
@@ -46,7 +46,8 @@
    "vue-quill-editor": "3.0.6",
    "vue-router": "^3.0.2",
    "vuedraggable": "^2.24.3",
    "vuex": "^3.0.1"
    "vuex": "^3.0.1",
    "xlsx-style": "^0.8.13"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~3.8.0",
src/api/quality/finishedProduct.js
@@ -60,4 +60,13 @@
    method: 'post',
    params: obj
  })
}
export function exportExaminationProducts(query) {
  return request({
    url: '/mes/qualityFinishedInspect/exportExcel',
    method: 'get',
    responseType : 'blob',
    params: query
  })
}
src/api/quality/processInspect.js
@@ -77,4 +77,20 @@
        method: 'post',
        params: obj
    })
}
}
export function selectDevice() {
  return request({
    url: '/mes/qualityProcessInsProduct/selectDevice',
    method: 'get',
  })
}
export function exportProcessInsProduct(query) {
  return request({
    url: '/mes/qualityProcessInspect/exportExcel',
    method: 'get',
    responseType : 'blob',
    params: query
  })
}
src/api/quality/rawMaterial.js
@@ -77,5 +77,12 @@
  })
}
export function exportRawMaterial(data) {
  return request({
    url: '/mes/rawInspect/export',
    method: 'get',
    responseType: 'blob',
    params: data
  })
}
src/api/quality/unqualifiedprocess.js
@@ -8,6 +8,15 @@
  })
}
export function exportData(query) {
  return request({
    url: '/mes/qualityInspectUnaccepted/export',
    method: 'get',
    responseType: 'blob',
    params: query
  })
}
export function pullInsUnapi(query) {
  return request({
    url: '/mes/qualityInspectUnaccepted/pullInsUn',
@@ -199,3 +208,12 @@
    method: 'get'
  })
}
export function UnqualifiedDisposal(query) {
  return request({
    url: '/mes/qualityInspectUnaccepted/export',
    method: 'get',
    responseType : 'blob',
    params: query
  })
}
src/views/common/rawMaterial-part.vue
@@ -210,9 +210,7 @@
        this.$parent.costPlannedAmountChange(this.currentRow)
      },
      handleCurrentChange(row) {
        console.log(row);
        this.currentRow = row
        console.log(this.currentRow);
      },
      handleSelectionChange(val) {
        // å¤šè¡Œé€‰ä¸­
src/views/common/ztt-table.vue
@@ -819,6 +819,7 @@
            this.isCleanInfo = true
          }
        }
        this.$emit("queryParam",this.queryParam)
      },
      deep: true
    },
@@ -936,7 +937,7 @@
      }
    },
    getDataList(selectedId) {
      this.dataListLoading = true
      // this.dataListLoading = true
      var criteria = {}
      criteria.dateTimeFilters = this.dateTimeFilters
      criteria.multiSearchFilter = this.multiSearchFilter
src/views/equipment/equipment/index.vue
@@ -198,12 +198,12 @@
            type: 'primary',
            fun: this.addOrUpdateHandle
          },
          {
            text: '同步',
            type: 'primary',
            loading: false,
            fun: this.pullEquipFun
          }
          // {
          //   text: '同步',
          //   type: 'primary',
          //   loading: false,
          //   fun: this.pullEquipFun
          // }
        ],
        operator: [
          {
src/views/quality/finishedProductInspection/finishedProduct-form.vue
@@ -96,25 +96,41 @@
                        <el-table-column prop="required" label="标准值" width="240" ></el-table-column>
                        <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="检测值"
                            width="240" style="text-align: center;">
                            <template slot-scope="scope">
                                <el-tooltip v-if="scope.row.iname!=null" :disabled="scope.row.eId != null"
                                class="item" effect="dark" content="请先选择设备!"
                                    placement="top-start">
                                    <el-input :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]"
                                        @blur="changeState(scope.row, index)" placeholder="请输入检测值"></el-input>
                                    <span v-if="resultVal != null" v-text="scope.row.empiricalValueAddss[index]"></span>
                                <el-col v-if="scope.row.itype === '1'">
                                    <el-tooltip v-if="scope.row.iname!=null" :disabled="scope.row.eId != null"
                                        class="item" effect="dark" content="请先选择设备!"
                                            placement="top-start">
                                            <el-input :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]"
                                                @blur="changeState(scope.row, index)" placeholder="请输入检测值"></el-input>
                                            <span v-if="resultVal != null" v-text="scope.row.empiricalValueAddss[index]"></span>
                                    </el-tooltip>
                                </el-col>
                                <el-col v-else>
                                        <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null"
                                            class="item" effect="dark" content="请先选择设备!" placement="top-start">
                                            <el-select style="width: 100%;" @change="changeState(scope.row, index)" :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" placeholder="请选择">
                                                <el-option v-for="item in dataVal" :key="item.value" :label="item.label"
                                                    :value="item.value">
                                                </el-option>
                                            </el-select>
                                            <span v-if="resultVal != null && processInspectVo.id != null"
                                                v-text="scope.row.empiricalValueAddss[index]"></span>
                                        </el-tooltip>
                                    </el-col>
                            </template>
                        </el-table-column>
                        <el-table-column prop="deviceName" label="试验设备" min-width="250">
                            <template slot-scope="scope">
                                <span v-if="resultVal!=null && processInspectVo.id!=null" v-text="scope.row.ename"></span>
                                <div v-else>
                                    <el-select style="width:100%" v-model="scope.row.eId"
                                    <el-input  v-model="scope.row.eId"  v-if="scope.row.iname != null" placeholder="请输入设备号"></el-input>
                                    <!-- <el-select style="width:100%" v-model="scope.row.eId"
                                    v-if="scope.row.iname != null" filterable @change="updateDevice(scope.row,scope.$index)">
                                        <el-option v-for="(item,index) in deviceList" 
                                        :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option>
                                    </el-select>
                                    </el-select> -->
                                </div>
                            </template>
                        </el-table-column>
@@ -175,6 +191,13 @@
export default {
    data() {
        return {
            dataVal: [{
                label: '是',
                value: '是'
            }, {
                label: '否',
                value: '否'
            }],
            resultVal: null,
            deviceList: [],
            hasChildren: true,
@@ -220,6 +243,7 @@
        this.init()
    },
    methods: {
        submitSave(){
            let pro = 0
            this.inspectionItems.forEach(item => {
@@ -323,7 +347,8 @@
        },
        getDeviceList(){
            selectDevice(null).then(res=>{
                this.deviceList = res.data.data
                // this.deviceList = res.data.data
                console.log(res);
            })
        },
        updateDevice(row,index){
src/views/quality/finishedProductInspection/index.vue
@@ -20,7 +20,8 @@
    import ttable from '@/views/common/ztt-table.vue'
    import * as fecha from 'element-ui/lib/utils/date'
    import finishedProductInspectionAdd from './finishedProduct-form'
    import { page,deletePro } from '@/api/quality/finishedProduct'
    import { page,deletePro,exportExaminationProducts } from '@/api/quality/finishedProduct'
    import { transform } from '@/util/fileTransform'
    export default {
        components: {
            finishedProductInspectionAdd,
@@ -151,6 +152,8 @@
                    },
                    {
                        text: '导出',
                        type: 'primary',
                        fun: this.exportExcel
                    }
                    ],
                    operator: [{
@@ -174,6 +177,15 @@
        },
        created() { },
        methods: {
            exportExcel(){
                console.log("============");
                let queryParam=this.$refs.finishedProduct.getQueryParam();
                delete queryParam.criteria
                console.log(queryParam);
                exportExaminationProducts(queryParam).then((res)=>{
                    transform(res)
                })
            },
            deleteHandle(row){
                console.log(row.id)
                this.$confirm('确认删除该数据吗?', '提示', {
src/views/quality/processInspect/index.vue
@@ -20,7 +20,8 @@
    import ttable from '@/views/common/ztt-table.vue'
    import * as fecha from 'element-ui/lib/utils/date'
    import processInspectForm from './processInspect-form'
    import { page,deleteById } from '@/api/quality/processInspect'
    import { transform } from '@/util/fileTransform'
    import { page,deleteById,exportProcessInsProduct } from '@/api/quality/processInspect'
    export default {
        components: {
            processInspectForm,
@@ -153,6 +154,7 @@
                    },
                    {
                        text: '导出',
                        fun: this.exportExcel
                    }
                    ],
                    operator: [{
@@ -172,6 +174,14 @@
        },
        created() { },
        methods: {
            exportExcel(){
                let queryParam=this.$refs.processInspect.getQueryParam();
                delete queryParam.criteria
                console.log(queryParam);
                exportProcessInsProduct(queryParam).then((res)=>{
                    transform(res)
                })
            },
            deleteHandle(row){
                this.$confirm('确认删除该数据吗?', '提示', {
                confirmButtonText: '确定',
src/views/quality/processInspect/processInspect-form.vue
@@ -4,45 +4,46 @@
        <div class="page-header">
            <div class="header-left">
                <a @click="$router.go(-1)"><i class="icon-btn-back"></i></a>
                <h2 v-if="resultVal != null && processInspectVo.id!=null">查看-过程检验单</h2>
                <h2 v-if="resultVal != null && processInspectVo.id != null">查看-过程检验单</h2>
                <h2 v-else>编辑-过程检验单</h2>
            </div>
            <div class="btn-group header-right">
                <el-button @click="addTestProject" v-if="processInspectVo.id==null">生成检验项目</el-button>
                <el-button @click="addTestProject" v-if="processInspectVo.id == null">生成检验项目</el-button>
            </div>
        </div>
        <div class="page-main">
            <div class="finishedProduct-basic">
                <el-form :model="processInspectVo" ref="addInspectionform" class="l-mes"
                label-position="right" label-width="120px" style="width: 100%" size="small">
                <el-form :model="processInspectVo" ref="addInspectionform" class="l-mes" label-position="right"
                    label-width="120px" style="width: 100%" size="small">
                    <div class="formwrapper">
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="订单号:">
                                    <el-input @blur="selectInfoByOrderId" :disabled="processInspectVo.id != null"
                                    v-model="processInspectVo.orderNumber" placeholder="请输入订单号" autocomplete="off" />
                                        v-model="processInspectVo.orderNumber" placeholder="请输入订单号" autocomplete="off" />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="产品名称:">
                                    <el-select style="width: 100%" @change="changeOptionsSamplename" :disabled="processInspectVo.id != null"
                                        v-model="processInspectVo.material" size="small" placeholder="请选择产品名称">
                                        <el-option v-for="(item,index) in optionsSamplename" :key="index" :label="item.material"
                                            :value="item.materialCode">
                                    <el-select style="width: 100%" @change="changeOptionsSamplename"
                                        :disabled="processInspectVo.id != null" v-model="processInspectVo.material"
                                        size="small" placeholder="请选择产品名称">
                                        <el-option v-for="(item, index) in optionsSamplename" :key="index"
                                            :label="item.material" :value="item.materialCode">
                                        </el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="产品编码:">
                                    <el-input disabled v-model="processInspectVo.materialCode"
                                        placeholder="请输入产品编码" autocomplete="off" />
                                    <el-input disabled v-model="processInspectVo.materialCode" placeholder="请输入产品编码"
                                        autocomplete="off" />
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="规格型号:">
                                    <el-input disabled v-model="processInspectVo.specs"
                                        placeholder="请输入规格型号" autocomplete="off" />
                                    <el-input disabled v-model="processInspectVo.specs" placeholder="请输入规格型号"
                                        autocomplete="off" />
                                </el-form-item>
                            </el-col>
                        </el-row>
@@ -51,7 +52,7 @@
                                <el-form-item label="工序名称">
                                    <el-select style="width: 100%" :disabled="processInspectVo.id != null"
                                        v-model="processInspectVo.technologyOperationId" size="small" placeholder="请选择工序">
                                        <el-option v-for="(item,index) in technologyList" :key="index" :label="item.name"
                                        <el-option v-for="(item, index) in technologyList" :key="index" :label="item.name"
                                            :value="item.technologyOperationId">
                                        </el-option>
                                    </el-select>
@@ -59,16 +60,16 @@
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="单位:">
                                    <el-input disabled v-model="processInspectVo.unit"
                                        placeholder="请输入单位" autocomplete="off" />
                                    <el-input disabled v-model="processInspectVo.unit" placeholder="请输入单位"
                                        autocomplete="off" />
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row>
                            <el-col :span="6">
                                <el-form-item label="数量:">
                                    <el-input v-model="processInspectVo.quantity" placeholder="请输入数量"
                                        autocomplete="off" :disabled="processInspectVo.id != null" />
                                    <el-input v-model="processInspectVo.quantity" placeholder="请输入数量" autocomplete="off"
                                        :disabled="processInspectVo.id != null" />
                                </el-form-item>
                            </el-col>
                        </el-row>
@@ -86,34 +87,60 @@
                <el-row style="width:100%;">
                    <el-col :span="24">
                        <el-table border :data="inspectionItems" height="400"
                            :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}"
                            :cell-style="{textAlign:'center'}" row-key="iid" default-expand-all
                            style="width: 100%" ref="table" :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
                            :header-cell-style="{ textAlign: 'center', color: 'black', backgroundColor: '#fafafa' }"
                            :cell-style="{ textAlign: 'center' }" row-key="iid" default-expand-all style="width: 100%"
                            ref="table" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
                            <el-table-column type="index" label="序号" width="60"></el-table-column>
                            <el-table-column label="项目" prop="father" width="240" ></el-table-column>
                            <el-table-column prop="iname" label="指标" width="240" ></el-table-column>
                            <el-table-column prop="iunit" label="单位" width="240" ></el-table-column>
                            <el-table-column prop="required" label="标准值" width="240" ></el-table-column>
                            <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index" label="检测值"
                                width="240" style="text-align: center;">
                            <el-table-column label="项目" prop="father" width="240"></el-table-column>
                            <el-table-column prop="iname" label="指标" width="240"></el-table-column>
                            <el-table-column prop="iunit" label="单位" width="240"></el-table-column>
                            <el-table-column prop="required" label="标准值" width="240"></el-table-column>
                            <el-table-column prop="inspectionValue" v-for="(item, index) in empiricalValueAdd" :key="index"
                                label="检测值" width="240" style="text-align: center;">
                                <template slot-scope="scope">
                                        <el-tooltip v-if="scope.row.iname!=null" :disabled="scope.row.eId != null"
                                        class="item" effect="dark" content="请先选择设备!"
                                            placement="top-start">
                                            <el-input :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]"
                                    <el-col v-if="scope.row.itype === '1'">
                                        <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null"
                                            class="item" effect="dark" content="请先选择设备!" placement="top-start">
                                            <el-input :disabled="scope.row.eId == null"
                                                v-model="scope.row.empiricalValueAddss[index]"
                                                @blur="changeState(scope.row, index)" placeholder="请输入检测值"></el-input>
                                            <span v-if="resultVal != null && processInspectVo.id!=null" v-text="scope.row.empiricalValueAddss[index]"></span>
                                            <span v-if="resultVal != null && processInspectVo.id != null"
                                                v-text="scope.row.empiricalValueAddss[index]"></span>
                                        </el-tooltip>
                                    </el-col>
                                    <el-col v-else>
                                        <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null"
                                            class="item" effect="dark" content="请先选择设备!" placement="top-start">
                                            <!-- <el-input :disabled="scope.row.eId == null"
                                                v-model="scope.row.empiricalValueAddss[index]"
                                                @blur="changeState(scope.row, index)" placeholder="请输入检测值"></el-input> -->
                                            <el-select style="width: 100%;" @change="changeState(scope.row, index)" :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" placeholder="请选择">
                                                <el-option v-for="item in dataVal" :key="item.value" :label="item.label"
                                                    :value="item.value">
                                                </el-option>
                                            </el-select>
                                            <span v-if="resultVal != null && processInspectVo.id != null"
                                                v-text="scope.row.empiricalValueAddss[index]"></span>
                                        </el-tooltip>
                                    </el-col>
                                </template>
                            </el-table-column>
                            <el-table-column prop="deviceName" label="试验设备" min-width="250">
                                <template slot-scope="scope">
                                    <span v-if="resultVal != null && scope.row.iname != null" v-text="scope.row.ename"></span>
                                    <span v-if="resultVal != null && scope.row.iname != null"
                                        v-text="scope.row.ename"></span>
                                    <div v-else>
<<<<<<< HEAD
                                        <el-select style="width:100%" v-model="scope.row.eId" 
                                        v-if="scope.row.iname != null" filterable @change="updateDevice(scope.row,scope.$index)">
                                            <el-option v-for="(item,index) in deviceList" 
                                            :key="index" :value="item.id" :label="item.code +'-'+ item.name"></el-option>
=======
                                        <el-select style="width:100%" v-model="scope.row.eId" v-if="scope.row.iname != null"
                                            filterable @change="updateDevice(scope.row, scope.$index)">
                                            <el-option v-for="(item, index) in deviceList" :key="index" :value="item.id"
                                                :label="item.code + '-' + item.name"></el-option>
>>>>>>> c36b81234cff45a92a096a94e844041cc1a31f2a
                                        </el-select>
                                    </div>
                                </template>
@@ -135,7 +162,7 @@
                            <el-table-column label="结论" fixed="right" min-width="100">
                                <template slot-scope="scope">
                                    <div v-if="scope.row.iname!=null">
                                    <div v-if="scope.row.iname != null">
                                        <span style="color: #34BD66;" v-if="scope.row.iresult == 1">合格</span>
                                        <span style="color: #E84738;" v-else-if="scope.row.iresult == 0">不合格</span>
                                        <span v-else>暂无结论</span>
@@ -153,8 +180,8 @@
                <el-row style="width:100%;">
                    <el-col :span="24">
                        <el-table border height="90" :data="inspectionResultForm"
                        :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}"
                        :cell-style="{textAlign:'center'}">
                            :header-cell-style="{ textAlign: 'center', color: 'black', backgroundColor: '#fafafa' }"
                            :cell-style="{ textAlign: 'center' }">
                            <el-table-column prop="materialCode" label="物料编号"></el-table-column>
                            <el-table-column prop="material" label="物料名称"></el-table-column>
                            <el-table-column prop="userName" label="检验员"></el-table-column>
@@ -164,9 +191,10 @@
                                    <el-tag type="danger" v-if="scope.row.result == '0'">不合格</el-tag>
                                </template>
                            </el-table-column>
                            <el-table-column  label="操作">
                            <el-table-column label="操作">
                                <template>
                                    <el-button type="text" :disabled="resultVal != null && processInspectVo.id!=null"  @click="submitSave()" size="small">上报</el-button>
                                    <el-button type="text" :disabled="resultVal != null && processInspectVo.id != null"
                                        @click="submitSave()" size="small">上报</el-button>
                                </template>
                            </el-table-column>
                        </el-table>
@@ -175,49 +203,57 @@
            </div>
        </div>
    </div>
    </template>
</template>
    
    <script>
    import {
        chooseMater,
        addProcess,
        queryById,
        updateDeviceBypppId,
        updateProcessInsProduct,
        updateProcessInspectsById,
     } from '@/api/quality/processInspect'
    import { selectDevice } from '@/api/quality/rawMaterial'
    export default {
        data() {
            return {
                resultVal: null,
                technologyList: [],
                deviceList: [],
                hasChildren: true,
                optionsSamplename: [],
                // æ·»åŠ åˆ—
                empiricalValueAdd: 1,
                // ç¼–辑时存储最长的列数字,做删除判断
                empiricalValueAddMaxNumber: 0,
                processInspectVo: {
                    id: null,
                    material: null,
                    materialCode: null,
                    orderNumber: "ZTTIC20230001",
                    quantity: null,
                    specs: null,
                    unit: null,
                    technologyOperationId: null
                },
                inspectionItems: [], // æ–°å¢žæ£€éªŒé¡¹ç›®è¡¨æ ¼
                inspectionResultForm: [],
            }
        },
        watch: {
        },
        beforeUpdate(){
          this.$nextTick(()=>{
<script>
import {
    chooseMater,
    addProcess,
    queryById,
    updateDeviceBypppId,
    updateProcessInsProduct,
    updateProcessInspectsById,
} from '@/api/quality/processInspect'
import { selectDevice } from '@/api/quality/processInspect'
export default {
    data() {
        return {
            dataVal: [{
                label: '是',
                value: '是'
            }, {
                label: '否',
                value: '否'
            }],
            resultVal: null,
            technologyList: [],
            deviceList: [],
            hasChildren: true,
            optionsSamplename: [],
            // æ·»åŠ åˆ—
            empiricalValueAdd: 1,
            // ç¼–辑时存储最长的列数字,做删除判断
            empiricalValueAddMaxNumber: 0,
            processInspectVo: {
                id: null,
                material: null,
                materialCode: null,
                orderNumber: "ZTTIC20230001",
                quantity: null,
                specs: null,
                unit: null,
                technologyOperationId: null
            },
            inspectionItems: [], // æ–°å¢žæ£€éªŒé¡¹ç›®è¡¨æ ¼
            inspectionResultForm: [],
        }
    },
    watch: {
    },
    beforeUpdate() {
        this.$nextTick(() => {
            this.$refs.table.doLayout();
<<<<<<< HEAD
          })
        },
        created() {
@@ -243,59 +279,148 @@
                                return obj.iresult == 0;
                        })
                        pro+=arr.length
=======
        })
    },
    created() {
    },
    mounted() {
        this.getDeviceList()
        this.processInspectVo.id = this.$route.query.id
        this.resultVal = this.$route.query.resultVal
        if (this.resultVal == null) {
            let val = sessionStorage.getItem("process-resultVal-" + this.processInspectVo.id);
            val == undefined ? this.resultVal = null : this.resultVal = val
        }
        this.init()
    },
    methods: {
        submitSave() {
            let pro = 0
            console.log(this.inspectionItems);
            this.inspectionItems.forEach(item => {
                if (item.children) {
                    let arr = item.children.filter(obj => {
                        return obj.iresult == 0;
                    })
                    pro += arr.length
                }
            })
            if (pro > 0) {
                this.$prompt('请输入不合格数量', '不合格数量', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    inputPattern: /^\d+$/,
                    inputErrorMessage: '请输入正确数字格式'
                }).then(({ value }) => {
                    let data = {
                        id: this.processInspectVo.id,
                        number: value
>>>>>>> c36b81234cff45a92a096a94e844041cc1a31f2a
                    }
                })
                if (pro > 0) {
                    this.$prompt('请输入不合格数量', '不合格数量', {
                        confirmButtonText: '确定',
                        cancelButtonText: '取消',
                        inputPattern: /^\d+$/,
                        inputErrorMessage: '请输入正确数字格式'
                    }).then(({ value }) => {
                        let data = {
                            id: this.processInspectVo.id,
                            number: value
                        }
                        updateProcessInspectsById(data).then(res => {
                            let data = res.data.data
                            if(data){
                                if(data.indexOf("成功")>0){
                                    this.$message.success(data);
                                    this.checkTestState()
                                }else{
                                    this.$message.warning(data);
                                }
                                return
                            }
                        });
                    }).catch(() => {});
                }else{
                    updateProcessInspectsById({id:this.processInspectVo.id,number:0}).then(res => {
                    updateProcessInspectsById(data).then(res => {
                        let data = res.data.data
                        if(data){
                            if(data.indexOf("成功") > 0){
                        if (data) {
                            if (data.indexOf("成功") > 0) {
                                this.$message.success(data);
                                this.checkTestState()
                            }else{
                            } else {
                                this.$message.warning(data);
                            }
                            return
                        }
                    });
                }).catch(() => { });
            } else {
                updateProcessInspectsById({ id: this.processInspectVo.id, number: 0 }).then(res => {
                    let data = res.data.data
                    if (data) {
                        if (data.indexOf("成功") > 0) {
                            this.$message.success(data);
                            this.checkTestState()
                        } else {
                            this.$message.warning(data);
                        }
                        return
                    }
                });
            }
            this.init()
        },
        checkTestState() {
            let resultVal = '1'
            this.inspectionItems.forEach(item => {
                if (item.children) {
                    item.children.forEach(obj => {
                        if (obj.iresult == 0) {
                            resultVal = '0'
                        }
                    })
                }
                this.init()
            },
            checkTestState(){
                let resultVal = '1'
                this.inspectionItems.forEach(item=>{
                    if(item.children){
                        item.children.forEach(obj=>{
                            if(obj.iresult == 0){
                                resultVal = '0'
                            }
                        })
            })
            this.resultVal = resultVal
            this.inspectionResultForm[0].result = resultVal
            sessionStorage.setItem("process-resultVal-" + this.processInspectVo.id, resultVal)
        },
        init() {
            let id = this.processInspectVo.id
            if (id != null) {
                queryById(id).then(res => {
                    let result = res.data.data
                    this.processInspectVo.orderNumber = result.orderNumber
                    this.processInspectVo.materialCode = result.materialCode
                    this.processInspectVo.material = result.material
                    this.processInspectVo.technologyOperationId = result.technologyOperationName
                    this.processInspectVo.specs = result.specs
                    this.processInspectVo.unit = result.punit
                    this.processInspectVo.quantity = result.quantity
                    let userList = []
                    result.children.forEach(item => {
                        item.iid = Math.random()
                        if (item.children != undefined) {
                            item.children.forEach(obj => {
                                let arr = []
                                if (obj.userName) {
                                    userList.push(obj.userName)
                                }
                                if (obj.inspectionValue) {
                                    arr = obj.inspectionValue.split(",")
                                }
                                obj.empiricalValueAddss = arr
                                if (arr.length > this.empiricalValueAdd) {
                                    this.empiricalValueAdd = arr.length
                                }
                            })
                        }
                    })
                    this.inspectionItems = result.children
                    this.inspectionResultForm = [{
                        materialCode: result.materialCode,
                        material: result.material,
                        userName: Array.from(new Set(userList)).join(","),
                        result: this.resultVal == null ? '' : this.resultVal,
                    }]
                }).catch(error => {
                    console.log(error)
                })
            }
        },
        getDeviceList() {
            selectDevice(null).then(res => {
                this.deviceList = res.data.data
            })
        },
        updateDevice(row, index) {
            updateDeviceBypppId({ deviceId: row.eId, ppid: row.iid }).then(res => {
                this.inspectionItems.forEach(obj => {
                    console.log(obj);
                    if (obj.children) {
                        obj.children[index - 1].inspectionValue = null
                        obj.children[index - 1].iresult = null
                        obj.children[index - 1].empiricalValueAddss = []
                    }
                })
<<<<<<< HEAD
                this.resultVal = resultVal
                this.inspectionResultForm[0].result = resultVal
                sessionStorage.setItem("process-resultVal-"+this.processInspectVo.id,resultVal)
@@ -466,90 +591,172 @@
            // åˆ é™¤æ£€éªŒå€¼åˆ—
            clickDeleteInspectionColumn() {
                if (this.empiricalValueAdd - 1 === 0) {
                } else {
                    if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
                        this.empiricalValueAdd = this.empiricalValueAdd - 1;
                        this.inspectionItems.forEach(i => {
                            i.empiricalValueAddss.splice(this.empiricalValueAdd, 1);
                        });
                    }
=======
            }).catch(error => {
                console.log(error)
            })
        },
        //产品名称,选择
        changeOptionsSamplename(val) {
            let sample = this.optionsSamplename.filter(o => {
                return o.materialCode == val
            })[0]
            this.processInspectVo.materialCode = sample.materialCode
            this.processInspectVo.specs = sample.specs
            this.processInspectVo.unit = sample.unit
            this.processInspectVo.material = sample.material
            this.technologyList = sample.children
        },
        changeState(row, index) {
            if (row.iid != null && row.iid != '') {
                let str = ""
                row.empiricalValueAddss.forEach(e => {
                    str += e + ","
                })
                str = str.slice(0, -1);
                if (str === undefined || str === '' || str === null) {
                    return
                }
            },
            // æ·»åŠ æ£€éªŒå€¼åˆ—
            clickAddInspectionColumn() {
                this.empiricalValueAdd = this.empiricalValueAdd + 1;
                let obj = {
                    devideId: row.eId,
                    ppid: row.iid,
                    inspectionValue: str
                }
                updateProcessInsProduct(obj).then(res => {
                    if (res.data.code == 0) {
                        this.$message.success("更新成功")
                    } else {
                        this.$message.error("更新失败")
                    }
                    this.init()
                })
            }
        },
    }
    </script>
        addTestProject() {
            let val = this.processInspectVo
            addProcess(val).then(res => {
                let id = res.data.data
                if (id != null) {
                    queryById(id).then(response => {
                        console.log(response.data.data.children)
                        let proList = response.data.data.children
                        proList.forEach(item => {
                            item.iid = Math.random();
                            if (item.children != undefined) {
                                item.children.forEach(obj => {
                                    obj.empiricalValueAddss = []
                                })
                            }
                        })
                        this.inspectionItems = proList
                    }).catch(error => {
                        console.log(error);
                    })
                }
            }).catch(error => {
                console.log(error)
            })
        },
        selectInfoByOrderId() {
            chooseMater({
                orderNumber: this.processInspectVo.orderNumber
            }).then(res => {
                if (res.data.data != null) {
                    this.optionsSamplename = res.data.data.children
>>>>>>> c36b81234cff45a92a096a94e844041cc1a31f2a
                } else {
                    this.$message({
                        message: '没有该订单号!',
                        type: 'warning'
                    });
                    this.optionsSamplename = []
                    this.processInspectVo.materialCode = null
                    this.processInspectVo.material = null
                    this.processInspectVo.specs = null
                    this.processInspectVo.unit = null
                }
            })
        },
        // åˆ é™¤æ£€éªŒå€¼åˆ—
        clickDeleteInspectionColumn() {
            if (this.empiricalValueAdd - 1 === 0) {
            } else {
                if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) {
                    this.empiricalValueAdd = this.empiricalValueAdd - 1;
                    this.inspectionItems.forEach(i => {
                        i.empiricalValueAddss.splice(this.empiricalValueAdd, 1);
                    });
                }
            }
        },
        // æ·»åŠ æ£€éªŒå€¼åˆ—
        clickAddInspectionColumn() {
            this.empiricalValueAdd = this.empiricalValueAdd + 1;
        }
    },
}
</script>
    
    <style scoped>
    .finishedProduct-detail {
      width: 100%;
      height: 470px;
      padding: 10px 20px;
      display: flex;
      border: 1px solid #ddd;
      background-color: #fff;
      margin-top: 10px;
      box-sizing: border-box;
      flex-wrap: wrap;
    }
    .finishedProduct-result {
      width: 100%;
      height: 150px;
      padding: 10px 20px;
      display: flex;
      border: 1px solid #ddd;
      background-color: #fff;
      margin-top: 10px;
      box-sizing: border-box;
      flex-wrap: wrap;
    }
    .finishedProduct-basic {
      background-color: #fff;
      height: 155px;
      display: flex;
      flex-wrap: wrap;
      padding: 10px 20px;
      border: 1px solid #ddd;
      box-sizing: border-box;
    }
    /*自定义disabled状态下checkbox的样式*/
    .completeproductstructure-checkout
      .el-checkbox__input.is-disabled.is-checked
      .el-checkbox__inner {
      background-color: #006eff;
      border-color: #006eff;
    }
    .completeproductstructure-checkout
      .el-checkbox__input.is-disabled.is-checked
      + span.el-checkbox__label {
      color: #006eff;
      border-color: #006eff;
    }
    .completeproductstructure-checkout
      .el-checkbox__input.is-disabled
      .el-checkbox__inner {
      background-color: #ffffff;
      cursor: pointer;
    }
    .completeproductstructure-checkout
      .el-checkbox__input.is-disabled
      + span.el-checkbox__label {
      color: #606266;
      cursor: pointer;
    }
    .completeproductstructure-checkout .el-checkbox__inner::after {
      border: 1px solid #fff !important;
      border-left: 0 !important;
      border-top: 0 !important;
      cursor: pointer !important;
    }
    </style>
<style scoped>
.finishedProduct-detail {
    width: 100%;
    height: 470px;
    padding: 10px 20px;
    display: flex;
    border: 1px solid #ddd;
    background-color: #fff;
    margin-top: 10px;
    box-sizing: border-box;
    flex-wrap: wrap;
}
.finishedProduct-result {
    width: 100%;
    height: 150px;
    padding: 10px 20px;
    display: flex;
    border: 1px solid #ddd;
    background-color: #fff;
    margin-top: 10px;
    box-sizing: border-box;
    flex-wrap: wrap;
}
.finishedProduct-basic {
    background-color: #fff;
    height: 155px;
    display: flex;
    flex-wrap: wrap;
    padding: 10px 20px;
    border: 1px solid #ddd;
    box-sizing: border-box;
}
/*自定义disabled状态下checkbox的样式*/
.completeproductstructure-checkout .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
    background-color: #006eff;
    border-color: #006eff;
}
.completeproductstructure-checkout .el-checkbox__input.is-disabled.is-checked+span.el-checkbox__label {
    color: #006eff;
    border-color: #006eff;
}
.completeproductstructure-checkout .el-checkbox__input.is-disabled .el-checkbox__inner {
    background-color: #ffffff;
    cursor: pointer;
}
.completeproductstructure-checkout .el-checkbox__input.is-disabled+span.el-checkbox__label {
    color: #606266;
    cursor: pointer;
}
.completeproductstructure-checkout .el-checkbox__inner::after {
    border: 1px solid #fff !important;
    border-left: 0 !important;
    border-top: 0 !important;
    cursor: pointer !important;
}
</style>
src/views/quality/processconfiguration/index.vue
@@ -3,14 +3,13 @@
    <basic-container>
      <ttable
        :table="table"
        :resultData="resultData"
        @change ="costPlannedAmountChange"
        @handleSelectionChange="handleSelectionChange"
        :uploadInfo="uploadInfo"
        :isShowHide="true"
        :prelang="prelang"
        :options="options"
        :ajaxFun="ajaxFun"
        @queryParam="getQueryParam($event)"
        ref="processconfiguration"
      >
        <template #toolbar></template>
@@ -65,7 +64,7 @@
                </div>
            </el-form>
            <span slot="footer" >
                <el-button @click="dialogVisible = false">取 æ¶ˆ</el-button>
                <el-button @click="WayCancel()">取 æ¶ˆ</el-button>
                <el-button type="primary" @click="WaySure()">ç¡® å®š</el-button>
            </span>
        </el-dialog>
@@ -74,16 +73,21 @@
</template>
<script>
import { UnqualifiedList,pullInsUnapi,AuditSuggestion
import {
  UnqualifiedList,
  pullInsUnapi,
  AuditSuggestion,
  exportData
} from '@/api/quality/unqualifiedprocess'
import TableForm from './table-form'
import { mapGetters } from 'vuex'
// import { remote } from '@/api/admin/dict'
import { transform } from '@/util/fileTransform'
import ttable from '@/views/common/ztt-table.vue'
export default {
  data() {
    return {
      resultData:[],
      queryParam: {},
      checkList: "",
      // WayIdea:'',
      UserId:{},
@@ -259,43 +263,13 @@
          //     return this.processModeOptions
          //   }
          // },
          //发起人
            // {
            //   minWidth: '200',
            //   prop: 'originator',
            //   label: '发起人',
            //   sort: true,
            //   isTrue: true,
            //   isSearch: true,
            //   searchInfoType: 'text'
            // },
          // å®¡æ ¸äºº
          // {
          //   minWidth: '140',
          //   prop: 'examiner',
          //   label: '审核人',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          // å¤„理人
          // {
          //   minWidth: '120',
          //   prop: 'handler',
          //   label: '处理人',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
        
        ],
        toolbar: [
          {
            text: '导出',
            type: 'primary',
            fun: this.handleExcel
            fun: this.handleExport
          },
        ],
        operator: [
@@ -342,34 +316,34 @@
    // this.getType()
  },
  methods: {
    async costPlannedAmountChange(value){
            this.resultData= value
        },
      handleExcel() {
        console.log(this.resultData);
        console.log(this.table.column);
        let arr = this.table.column.filter(item => item.isTrue == true).map(item => {
                    return{
                        prop:item.prop,
                        label:item.label
                }
            })
        let opt = {
          title: '文档标题',
          column: [{
            label:'不合格处置',
            prop:'header',
            children:arr
          }],
          data: this.resultData
    getQueryParam(data){
      this.queryParam = data
    },
    handleExport(){
      exportData(this.queryParam).then(res=>{
          console.log(res)
          this.downloadFun(res)
      }).catch(error=>{
          console.log(error);
      })
    },
    downloadFun(result){
        if(result == null || result == undefined){
            return;
        }
        this.$Export.excel({
          title: opt.title,
          columns: opt.column,
          data: opt.data
        });
      },
        var nameList = result.headers['content-disposition'];
        nameList = decodeURI(nameList);
        var fileName = nameList.split('=')[1];
        const blob = new Blob([result.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })
        const downloadElement = document.createElement('a') // æ–°å»ºä¸€ä¸ªDOM节点
        const href = window.URL.createObjectURL(blob) // åˆ›å»ºä¸‹è½½çš„链接
        downloadElement.href = href
        downloadElement.download = fileName // ä¸‹è½½åŽæ–‡ä»¶å
        document.body.appendChild(downloadElement) // å°†æ–°å¢žçš„节点挂载到页面上
        downloadElement.click() // ç‚¹å‡»ä¸‹è½½
        document.body.removeChild(downloadElement) // ä¸‹è½½å®Œæˆç§»é™¤å…ƒç´ 
        window.URL.revokeObjectURL(href)
    },
    //审核结果
    AuditResult(row){
      this.UserId = row.id
@@ -377,6 +351,11 @@
      this.dialogVisible = true;
    },
    WayCancel(){
      this.dialogVisible = false
      this.checkList = null
      this.WayIdea = null
    },
    WaySure(){
      AuditSuggestion({id:this.UserId,way:this.checkList}).then(
        res =>{
src/views/quality/rawMaterial/ExportMaterial.vue
ÎļþÒÑɾ³ý
src/views/quality/rawMaterial/index.vue
@@ -20,13 +20,15 @@
            <ttable 
            :table="table"
            :resultData="resultData"
            @change ="costPlannedAmountChange"
            @handleSelectionChange="handleSelectionChange"
            :prelang="prelang"
            :options="options"
            :ajaxFun="ajaxFun"
            @queryParam="getQueryParam($event)"
            ref="rawMaterialTable">
            <template #toolbar></template>
            <template #toolbar>
                <el-button @click="exportRawMaterial" type="primary" >导出</el-button>
            </template>
            </ttable>
        </basic-container>
        <!-- å¼¹çª—, æ–°å¢ž / ä¿®æ”¹ -->
@@ -38,15 +40,15 @@
    </div>
</template>
<script>
import ExportMaterial from './ExportMaterial.vue'
import ttable from '@/views/common/ztt-table.vue'
import { getRawInspectList,delObj } from '@/api/quality/rawMaterial'
import { getRawInspectList,delObj,exportRawMaterial } from '@/api/quality/rawMaterial'
import RawMaterialForm from './rawMaterial-form'
import * as fecha from 'element-ui/lib/utils/date'
import { mapGetters } from 'vuex'
  export default {
    data() {
        return {
            queryParam: {},
            resultData:[],
            addOrUpdateVisible: false,
            type: [1],
@@ -64,14 +66,13 @@
                isRefresh: true, // æ˜¯å¦æ˜¾ç¤ºåˆ·æ–°æŒ‰é’®
                isShowHide: true, // æ˜¯å¦æ˜¾ç¤ºæ˜¾å½±æŒ‰é’®H
                isSearch: true, // é«˜çº§æŸ¥è¯¢æŒ‰é’®
                defaultOrderBy: { column: 'formTime', direction: 'desc' },
                defaultOrderBy: { column: 'createTime', direction: 'desc' },
            },
            table: {
                total: 0,
                currentPage: 1,
                pageSize: 20,
                data: [],
                isExport:true,
                // æ ‡é¢˜
                column: [
                    {
@@ -139,6 +140,7 @@
                        prop: 'createTime',
                        label: '报检日期',
                        isTrue: true,
                        sort: true,
                        isSearch: true,
                        searchInfoType: 'text',
                        formatter: this.formatDateTime,
@@ -190,13 +192,7 @@
                    text: '新增',
                    type: 'primary',
                    fun: this.addOrUpdateHandle
                },
                {
                    text: '导出',
                    type: 'primary',
                    fun: this.handleExcel
                }
                ],
                }],
                operator: [{
                    text: '作废',
                    type: 'text',
@@ -214,10 +210,17 @@
            StateList: [{label:'全部',value:''},{label:'已合格',value:'1'},{label:'不合格',value:'0'}],
        }
    },
    // props:{
    //     queryParam:{
    //         type: Object,
    //         default: ()=>{
    //             return {}
    //         }
    //     }
    // },
    components: {
        ttable,
        RawMaterialForm,
        ExportMaterial,
    },
    created() {
@@ -226,34 +229,34 @@
        ...mapGetters(['permissions'])
    },
    methods:{
        async costPlannedAmountChange(value){
            this.resultData= value
        getQueryParam(data){
            this.queryParam = data
        },
      handleExcel() {
        console.log(this.resultData);
        console.log(this.table.column);
        let arr = this.table.column.filter(item => item.isTrue == true).map(item => {
                    return{
                        prop:item.prop,
                        label:item.label
                }
        exportRawMaterial(){
            exportRawMaterial(this.queryParam).then(res=>{
                console.log(res)
                this.downloadFun(res)
            }).catch(error=>{
                console.log(error);
            })
        let opt = {
          title: '文档标题',
          column: [{
            label:'',
            prop:'header',
            children:arr
          }],
          data: this.resultData
        }
        this.$Export.excel({
          title: opt.title,
          columns: opt.column,
          data: opt.data
        });
      },
        },
        downloadFun(result){
            if(result == null || result == undefined){
                return;
            }
            var nameList = result.headers['content-disposition'];
            nameList = decodeURI(nameList);
            var fileName = nameList.split('=')[1];
            const blob = new Blob([result.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' })
            const downloadElement = document.createElement('a') // æ–°å»ºä¸€ä¸ªDOM节点
            const href = window.URL.createObjectURL(blob) // åˆ›å»ºä¸‹è½½çš„链接
            downloadElement.href = href
            downloadElement.download = fileName // ä¸‹è½½åŽæ–‡ä»¶å
            document.body.appendChild(downloadElement) // å°†æ–°å¢žçš„节点挂载到页面上
            downloadElement.click() // ç‚¹å‡»ä¸‹è½½
            document.body.removeChild(downloadElement) // ä¸‹è½½å®Œæˆç§»é™¤å…ƒç´ 
            window.URL.revokeObjectURL(href)
        },
        // åˆ é™¤
        deleteHandle(row) {
        this.$confirm('是否确认删除该数据:' + row.code , '提示', {
src/views/quality/rawMaterial/rawMaterial-form.vue
@@ -75,23 +75,24 @@
                  </el-form-item>
                </el-col>
                <el-col :span="6">
                  <el-form-item  prop="projectName" label="项目名称">
                    <el-tooltip :disabled="dataForm.projectName==null" :content="dataForm.projectName">
                      <el-input v-model="dataForm.projectName" disabled ></el-input>
                    </el-tooltip>
                  </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="6">
                  <el-form-item label="报检日期" prop="createTime" v-if="dataForm.id!=null">
                      <el-input v-model="dataForm.createTime" disabled />
                  </el-form-item>
                </el-col>
            </el-row>
            <el-row>
              </el-col>
              <el-col :span="6">
                <el-form-item label="报检人" prop="createUser" v-if="dataForm.id!=null">
                      <el-input v-model="dataForm.createUser" disabled />
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item prop="projectName" label="项目名称">
                <el-input v-model="dataForm.projectName" disabled >
                </el-input>
                </el-form-item>
            </el-col>
            </el-row>
        </el-form>
      </div>
@@ -113,14 +114,23 @@
                :data="list" border style="width: 100%;" height="400">
                  <el-table-column type="index" label="序号" width="60">
                  </el-table-column>
                  <el-table-column prop="father" label="检验项目" width="260">
                    <template slot-scope="scope">
                      <el-input :disabled="dataForm.id != null" v-model="scope.row.father" placeholder="请输入检验项目"></el-input>
                    </template>
                  </el-table-column>
                  <el-table-column prop="note" label="检验描述" width="260">
                    <template slot-scope="scope">
                      <el-input :disabled="dataForm.id != null" v-model="scope.row.note" placeholder="检验描述"></el-input>
                    </template>
                  </el-table-column>
                  <el-table-column prop="name" label="项目" width="260">
                    <template slot-scope="scope">
                      <el-select v-if="projectList.length > 0" :disabled="dataForm.id != null" class="inline-input" v-model="scope.row.name"
                      filterable allow-create placeholder="请输入或选择项目名称" style="width:100%" @change="changeName(scope.$index,scope.row)">
                        <el-option v-for="(item,index) in projectList" :key="index" :label="item.name" :value="item.name"/>
                    </el-select>  
                      <el-input v-else :disabled="dataForm.id != null" class="inline-input" v-model="list.name"
                      <el-input v-else :disabled="dataForm.id != null" class="inline-input" v-model="scope.row.name"
                        placeholder="请输入项目名称"></el-input>
                    </template>
                  </el-table-column>
@@ -140,18 +150,19 @@
                  <el-table-column prop="testValue" label="检测值" min-width="260" v-for="(item, index) in empiricalValueAdd"
                    :key="index">
                    <template slot-scope="scope">
                      <el-tooltip :disabled="scope.row.equipmentId != null" class="item" effect="dark" content="请先选择设备!"
                      <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="请先选择设备!"
                        placement="top-start">
                        <!-- <el-input :disabled="scope.row.equipmentId == null ||  (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.testValueList[index]"
                          @blur="updateTestValue(scope.row,index)" placeholder="请输入检测值"></el-input> -->
                        <el-autocomplete
                          :disabled="scope.row.equipmentId == null ||  (dataForm.id!=null&&resultVal!=null)"
                          style="width:100%"
                          :disabled="scope.row.deviceId == null ||  (dataForm.id!=null&&resultVal!=null)"
                          class="inline-input"
                          v-model="scope.row.testValueList[index]"
                          :fetch-suggestions="querySearch"
                          placeholder="请输入内容"
                          placeholder="请输入检测值"
                          @select="handleSelect"
                        ></el-autocomplete>
@@ -162,9 +173,9 @@
                  <el-table-column prop="deviceName" label="试验设备" min-width="260">
                    <template slot-scope="scope">
                        <el-select :disabled="resultVal!=null && dataForm.id!=null" style="width:100%" 
                        v-model="scope.row.equipmentId" filterable @change="updateDevice(scope.row,scope.$index)">
                        v-model="scope.row.deviceId" filterable @change="updateDevice(scope.row,scope.$index)">
                            <el-option v-for="(item,index) in deviceList" 
                            :key="index" :value="item.id" :label="item.number +'-'+ item.name"></el-option>
                            :key="index" :value="item.id" :label="item.code +'-'+ item.name"></el-option>
                        </el-select>
                    </template>
                  </el-table-column>
@@ -223,17 +234,12 @@
          <span>不合格数量:</span>
          <el-input type="number" v-model="unqualifiedNum" placeholder="请输入不合格数量"/>
        </el-col>
        <el-col>
          <span>实检数量:</span>
          <el-input type="number" placeholder="请输入实检数量" v-model="fiedNum"/>
        </el-col>
      </el-row>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 æ¶ˆ</el-button>
        <el-button type="primary" @click="submitSave()">ç¡® å®š</el-button>
      </span>
    </el-dialog>
    <!-- <rawMaterialPartDialog :currentRow ="currentRow" @costPlannedAmountChange="costPlannedAmountChange"/> -->
  </div>
</template>
@@ -246,7 +252,6 @@
  updateRawInspectsById,
  updateDeviceById, } from '@/api/quality/rawMaterial'
  import rawMaterialPartDialog from '@/views/common/rawMaterial-part'
import { log } from 'util'
export default {
    // props:['currentRow'],
    computed:{},
@@ -255,9 +260,8 @@
    },
    data(){
        return{
          currentRow:[],
          userlist:[],
            fiedNum: null,
            currentRow:[],
            userlist:[],
            unqualifiedNum: null,
            dialogVisible:false,
            resultVal: null,
@@ -282,7 +286,7 @@
                number: '',
                supplier: '',
                rawInsProducts: [{
                  equipmentId: 0,
                  deviceId: 0,
                  name: '',
                  required: '',
                  testValue: '',
@@ -320,30 +324,18 @@
      this.init()
      this.getDeviceList()
      this.restaurants = this.loadAll();
      // this.costPlannedAmountChange()
      console.log(this.dataForm);
    },
    watch:{
      dialogVisible(newVal){
        if(newVal){
          this.unqualifiedNum = null
          this.fiedNum = null
        }
      },
      
    },
    methods:{
      //项目
      // xxxx(){
      //   console.log(currentRow);
      // },
      // äº‹ä»¶å¤„理函数
        // costPlannedAmountChange(value) {
        //   console.log("==>");
        //   console.log(value.rawInsProducts);
        //   this.userlist = value.rawInsProducts
        //   this.list = this.userlist
        //   console.log(this.list);
        // },
      querySearch(queryString, cb) {
        var restaurants = this.restaurants;
        var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
@@ -373,7 +365,6 @@
      },
      // ç¡®è®¤å›žè°ƒ
      selectPart(param, nodePart, index) {
        console.log("成功--",param);
        if (typeof param !== 'undefined') {
          this.dataForm.code = param.code
          this.dataForm.name = param.name
@@ -385,21 +376,20 @@
          this.dataForm.message = param.message
          this.dataForm.projectName = param.projectName
          this.projectList = param.rawInsProducts == null ? [] : param.rawInsProducts
          // param.rawInsProducts.forEach(item=>{
          //   this.list.push(item)
          // })
          param.rawInsProducts.forEach(o=>{
            this.clickAddLine(o)
          })
        }
      },
      queryCode(){
        this.paramObj = {
          code: this.dataForm.code
        }
        console.log(this.paramObj);
        this.showPart = true
      },
      updateDevice(row,index){
        if(this.dataForm.id != null){
          updateDeviceById({equiomentId:row.equipmentId,rpId:row.rpId}).then(res=>{
          updateDeviceById({deviceId:row.deviceId,rpId:row.rpId}).then(res=>{
            this.list[index].testValue = ''
            this.list[index].testState = null
            this.list[index].testValueList = []
@@ -436,24 +426,24 @@
        let data = {
          id: this.dataForm.id,
          number: this.unqualifiedNum,
          toLocationNo: this.fiedNum
          // toLocationNo: this.fiedNum
        }
        updateRawInspectsById(data).then(res => {
          if(res.data.code == 0){
            sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,res.data.data)
            this.$message.success("上报成功");
            this.dialogVisible = false
            this.checkTestState()
          }
        });
        this.checkTestState()
      },
      addTeatValueColumn(){
        this.empiricalValueAdd = this.empiricalValueAdd + 1;
      },
      // æ·»åŠ è¡Œ
      clickAddLine() {
      clickAddLine(row) {
        let obj = {
          equipmentId: null,
          deviceId: null,
          name: "",
          required: "",
          testValue: "",
@@ -461,6 +451,11 @@
          testState: null,
          testValueList: [],
        };
        if(row!=undefined){
          obj.name = row.name
          obj.unit = row.unit
          obj.required = row.required
        }
        this.list.push(obj);
      },
      // åˆ é™¤è¡Œ
@@ -482,7 +477,7 @@
          return
        }
        let obj = {
          equiomentId: row.equipmentId,
          deviceId: row.deviceId,
          rpId: row.rpId,
          testValue: row.testValueList.join(",")
        }
@@ -508,9 +503,9 @@
            this.dataForm.unit = data.runit
            this.dataForm.supplier = data.supplier
            this.dataForm.number = data.number
            this.dataForm.projectName = data.projectName
            this.dataForm.createTime = data.creatTime
            this.dataForm.createUser = data.createUser
            // this.dataForm.judgeState = data.judgeState
            let userNameList = []
            this.list = []
            data.children.forEach(item=>{
@@ -523,7 +518,7 @@
                }
              }
              this.list.push({
                equipmentId: item.equiomentId,
                deviceId: item.deviceId,
                deviceName: item.deviceName,
                name: item.rpName,
                required: item.required,
@@ -562,7 +557,7 @@
        })
      },
      getDeviceList(){
        selectDevice(null).then(res=>{
        selectDevice().then(res=>{
          this.deviceList = res.data.data
        })
      },