王震
2023-11-06 a47e864ca8071792642527aaa45ccdb36347e55b
Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before
已删除1个文件
已修改7个文件
已添加1个文件
335 ■■■■■ 文件已修改
node_modules.7z 补丁 | 查看 | 原始文档 | blame | 历史
src/api/quality/rawMaterial.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/quality/unqualifiedprocess.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/common/rawMaterial-part.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/common/ztt-table.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/processconfiguration/index.vue 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/rawMaterial/ExportMaterial.vue 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/rawMaterial/index.vue 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/rawMaterial/rawMaterial-form.vue 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
node_modules.7z
Binary files differ
src/api/quality/rawMaterial.js
@@ -77,3 +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',
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
    },
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>
@@ -74,7 +73,12 @@
</template>
<script>
import { UnqualifiedList,pullInsUnapi,AuditSuggestion,UnqualifiedDisposal} from '@/api/quality/unqualifiedprocess'
import {
  UnqualifiedList,
  pullInsUnapi,
  AuditSuggestion,
  exportData
} from '@/api/quality/unqualifiedprocess'
import TableForm from './table-form'
import { mapGetters } from 'vuex'
// import { remote } from '@/api/admin/dict'
@@ -83,7 +87,7 @@
export default {
  data() {
    return {
      resultData:[],
      queryParam: {},
      checkList: "",
      // WayIdea:'',
      UserId:{},
@@ -265,7 +269,7 @@
          {
            text: '导出',
            type: 'primary',
            fun: this.exportExcel
            fun: this.handleExport
          },
        ],
        operator: [
@@ -312,14 +316,34 @@
    // this.getType()
  },
  methods: {
    exportExcel(){
                let queryParam=this.$refs.processconfiguration.getQueryParam();
                delete queryParam.criteria
                console.log(queryParam);
                UnqualifiedDisposal(queryParam).then((res)=>{
                    transform(res)
                })
            },
    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;
        }
        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
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>
@@ -120,7 +121,7 @@
                      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 +141,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 +164,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 +225,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 +243,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 +251,8 @@
    },
    data(){
        return{
          currentRow:[],
          userlist:[],
            fiedNum: null,
            currentRow:[],
            userlist:[],
            unqualifiedNum: null,
            dialogVisible:false,
            resultVal: null,
@@ -282,7 +277,7 @@
                number: '',
                supplier: '',
                rawInsProducts: [{
                  equipmentId: 0,
                  deviceId: 0,
                  name: '',
                  required: '',
                  testValue: '',
@@ -320,30 +315,16 @@
      this.init()
      this.getDeviceList()
      this.restaurants = this.loadAll();
      // this.costPlannedAmountChange()
    },
    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 +354,6 @@
      },
      // ç¡®è®¤å›žè°ƒ
      selectPart(param, nodePart, index) {
        console.log("成功--",param);
        if (typeof param !== 'undefined') {
          this.dataForm.code = param.code
          this.dataForm.name = param.name
@@ -385,21 +365,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 +415,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 +440,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 +466,7 @@
          return
        }
        let obj = {
          equiomentId: row.equipmentId,
          deviceId: row.deviceId,
          rpId: row.rpId,
          testValue: row.testValueList.join(",")
        }
@@ -508,9 +492,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 +507,7 @@
                }
              }
              this.list.push({
                equipmentId: item.equiomentId,
                deviceId: item.deviceId,
                deviceName: item.deviceName,
                name: item.rpName,
                required: item.required,