zouyu
2024-03-07 b059305e27b87b446679e523c8df9ad1448d8d99
销售订单-下载排产单2
已修改4个文件
196 ■■■■ 文件已修改
src/api/plan/customerorder.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/customerorder/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/rawMaterial/rawMaterial-form.vue 124 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/rawMaterial/testValue-select.vue 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/plan/customerorder.js
@@ -266,10 +266,10 @@
export function downloadProduct(data){
    return request({
        url: '/mes/plan/customerOrder/downloadProduct',
        method: 'post',
        url: '/mes/plan/customerOrder/getProduct',
        method: 'get',
        responseType: 'blob',
        data: data
        params: data
      })
}
src/views/plan/customerorder/index.vue
@@ -1130,7 +1130,7 @@
            this.$message.error("请选择一条数据")
            return
        }
        downloadProduct({ids: ids}).then(res=>{
        downloadProduct(ids).then(res=>{
            if(res.status===200){
                transform(res)
            }
src/views/quality/rawMaterial/rawMaterial-form.vue
@@ -177,31 +177,58 @@
                      <el-table-column prop="testValue" label="检测值" min-width="160" v-for="(item,index) in empiricalValueAdd" :key="index">
                        <template slot-scope="scope">
                          <div v-if="!scope.row.children">
                          <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="请先选择设备!" placement="top-start">
                            <el-dropdown>
                            <el-input placeholder="检测值"/>
                            <i style="line-height: normal;padding: 10px 7px;" class="el-icon-arrow-down el-icon--right"></i>
                            <el-dropdown-menu slot="dropdown">
                                <el-dropdown-item>黄金糕</el-dropdown-item>
                                <el-dropdown-item>狮子头</el-dropdown-item>
                                <el-dropdown-item>螺蛳粉</el-dropdown-item>
                                <el-dropdown-item>双皮奶</el-dropdown-item>
                                <el-dropdown-item>蚵仔煎</el-dropdown-item>
                            </el-dropdown-menu>
                            </el-dropdown>
                            <el-select v-model="scope.row.testValueList[index]"
                            ref="testValueSelect"
                            clearable
                            filterable
                            allow-create
                            default-first-option
                            @change="changeState(scope.row)"
                            @blur="onTypeBlur($event)">
                                <el-option label="是" value="是"></el-option>
                                <el-option label="否" value="否"></el-option>
                            </el-select>
                            <!-- <testValueSelect
                            @input1="changeState(scope.row)"
                            :options="[{
                                label:'是',
                                value: '是'
                            },{
                                label:'否',
                                value: '否'
                            }]"
                            v-model="scope.row.testValueList[index]"
                            ></testValueSelect> -->
                            <!-- <div style="display:flex">
                                <el-input
                                ref="testValueInput"
                                clearable
                                @blur.stop="changeState(scope.row)"
                                v-model="scope.row.testValueList[index]"
                                placeholder="请输入检测值"/>
                                <el-dropdown @command="handleCommand" class="dropdown" trigger="click">
                                    <i class="el-icon-arrow-down el-icon--right"></i>
                                    <el-dropdown-menu slot="dropdown">
                                        <el-dropdown-item :command="{'index':index,'use':'是',...scope.row}">是</el-dropdown-item>
                                        <el-dropdown-item :command="{'index':index,'use':'否',...scope.row}">否</el-dropdown-item>
                                    </el-dropdown-menu>
                                </el-dropdown>
                            </div> -->
                            <!-- :disabled="scope.row.deviceId == null ||  (dataForm.id!=null&&(resultVal!=null && resultVal!=''))" -->
                            <!-- @blur.stop="changeState(scope.row)" -->
                            <!-- <el-autocomplete clearable
                            :disabled="scope.row.deviceId == null ||  (dataForm.id!=null&&(resultVal!=null && resultVal!=''))"
                            @blur.stop="changeState(scope.row,scope.$index)"
                            @select="changeState(scope.row,scope.$index)"
                            ref="testValueInput"
                            @input="testChange(scope.row)"
                            @blur="changeState(scope.row)"
                            v-model="scope.row.testValueList[index]"
                            :fetch-suggestions="querySearch"
                            placeholder="请输入或选择检测值" >
                            <i style="line-height: normal;padding: 10px 7px;" class="el-icon-arrow-down" slot="suffix"></i>
                            <template slot-scope="{ item }">
                                <div>{{ item.value }}</div>
                            </template>
                            </el-autocomplete> -->
                            </el-tooltip>
                          <!-- <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="请先选择设备!" placement="top-start">
                            </el-tooltip> -->
                          </div>
                        </template>
                      </el-table-column>
@@ -225,7 +252,7 @@
                      <el-table-column prop="note" label="检验描述" width="160" >
                        <template slot-scope="scope">
                          <div v-if="!scope.row.children">
                            <el-input @blur="changeState(scope.row, scope.$index)" :disabled="scope.row.deviceId == null ||  (dataForm.id!=null&&(resultVal!=null && resultVal!=''))" v-model="scope.row.note" placeholder="检验描述"></el-input>
                            <el-input @blur="changeState(scope.row)" :disabled="scope.row.deviceId == null ||  (dataForm.id!=null&&(resultVal!=null && resultVal!=''))" v-model="scope.row.note" placeholder="检验描述"></el-input>
                          </div>
                        </template>
                      </el-table-column>
@@ -415,11 +442,12 @@
  import rawMaterialPartDialog from '@/views/common/rawMaterial-part'
  import { getStore } from '@/util/store'
  import qrCodeApp from '@/views/common/qrCodeApp'
  import transformImage from '@/util/fileTransform'
  import testValueSelect from './testValue-select'
  export default {
  components:{
    rawMaterialPartDialog,
    qrCodeApp
    qrCodeApp,
    testValueSelect
  },
    computed:{},
    data(){
@@ -748,7 +776,7 @@
              required: null,
              rpId: null,
              name: null,
              unit: 'mm',
              unit: '',
              userName: null,
              testValue: '',
              testValueList: [],
@@ -891,26 +919,53 @@
        console.log(e,e.target.tabIndex);
        console.log(e.target.value);
      },
      changeState(row, index) {
        this.$nextTick(()=>{
      handleCommand(command){
        if(command.use && command.use==='是'){
            command.testValueList[command.index] = '是'
        }
        if(command.use && command.use==='否'){
            command.testValueList[command.index] = '否'
        }
        this.changeState(command)
      },
      onTypeBlur(event){
        const enterKeyEvent = new KeyboardEvent('keyup', {
            key: 'Enter',
            keyCode: 13,
            which: 13,
            bubbles: true
        });
        // 模拟在输入框上触发按键事件
        this.$refs.testValueSelect.dispatchEvent(enterKeyEvent);
      },
      changeState(row) {
        if(row.use){
            this.$refs.testValueSelect.$event.target.value = row.use
        }
          this.$nextTick(()=>{
            console.log("blur---",row.testValueList);
            return
            if(row){
                let isTrue = true
                for(var i=0;i<row.testValueList.length;i++){
                    let val = row.testValueList[i]
                    if(!['是','否'].includes(val)){
                        let reg = /(^-?[0-9]{1,6}$)|(^-?[0-9]{1,6}[\.]{1}[0-9]{1,3}$)/
                        if(!reg.test(val)){
                          row.testValueList = ''
                          this.$message.error("请输入6位数字或选择是否")
                          isTrue = false
                    if(val != '' && val != null){
                        if(!['是','否'].includes(val)){
                            let reg = /(^-?[0-9]{1,6}$)|(^-?[0-9]{1,6}[\.]{1}[0-9]{1,3}$)/
                            if(!reg.test(val)){
                                val = null
                              this.$message.error("请输入6位数字或选择是否")
                              isTrue = false
                          }
                      }
                  }
                    }
                }
                if(!isTrue){
                    return
                }
            }
            console.log(row.testValueList.join(","));
            console.log(row.testValueList);
            return
            if (row.rpId != null && row.rpId != '') {
                let val = row.testValueList.join(",")
@@ -1205,6 +1260,13 @@
  border: 1px solid #e4e7ed;
  border-bottom: none;
}
.dropdown{
    position: relative;
    right: 30px;
    top: 5px;
    color: #C0C4CC;
    font-size: 14px;
}
@media (max-width: 767px) {
  .pad-addcol-btn{
    font-size:12px;
src/views/quality/rawMaterial/testValue-select.vue
@@ -1,13 +1,71 @@
<!-- 原材料检验-检测值输入框组件 -->
<template>
    <el-select v-model="selectedValue" @change="handleChange" clearable>
        <el-option
        v-for="item in options"
        :key="item.value"
        :label="item.label"
        :value="item.value"
        ></el-option>
        <el-input
        v-model="inputValue"
        slot="prefix"
        placeholder="自定义输入"
        @input="handleInput"
        ></el-input>
  </el-select>
</template>
<script>
export default {
    props:{
        value: {
            type: [String, Number],
            default: ''
        },
        options: {
            type: Array,
            default: () => []
        }
    },
    data(){
        return {
            selectedValue: '',
            inputValue: '',
            // options: [{
            //     label:'是',
            //     value: '是'
            // },{
            //     label:'否',
            //     value: '否'
            // }]
        }
    },
    created() {
    this.selectedValue = this.value;
  },
  watch: {
    value(newValue) {
      this.selectedValue = newValue;
    }
  },
  methods: {
    handleChange(value) {
      this.$emit('input1', value);
    },
    handleInput(value) {
      this.$emit('input1', value);
    }
  }
}
</script>
<style>
<style scope>
    .dropdown{
        position: relative;
        right: 30px;
        top: 5px;
        color: #C0C4CC;
        font-size: 14px;
    }
</style>