zouyu
6 天以前 11c0c969f05fd3c546b44898a0020eed9ba65fbe
业务管理:IFS域字段显示
已修改9个文件
431 ■■■■ 文件已修改
src/views/business/inspectionReview/index.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/index.vue 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/inspection.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/materialOrder/index.vue 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/outsourcingFinishProduct/index.vue 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/rawMaterialInspection/index.vue 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/reportPreparation/index.vue 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/statisticalCharts/qualificationRateStatistics/index.vue 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionReview/index.vue
@@ -2,6 +2,12 @@
  <div class="app-container">
    <div>
      <el-form :model="entity" ref="entity" size="small" :inline="true">
        <el-form-item label="IFS域" prop="contract">
          <el-select @keyup.enter.native="refreshTable" v-model="entity.contract" clearable placeholder="请选择" size="small">
            <el-option label="ZTNS" value="ZTNS"/>
            <el-option label="KJNS" value="KJNS"/>
          </el-select>
        </el-form-item>
        <el-form-item label="批号" prop="updateBatchNo">
          <el-input v-model="entity.updateBatchNo" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable()">
@@ -87,6 +93,7 @@
      active: 1,
      tabIndex: 0,
      entity: {
        contract: null,
        sonLaboratory: null,
        insState: '3',
        userId: 0,
@@ -96,6 +103,25 @@
      tableData: [],
      column: [
        {
          label: 'IFS域',
          prop: 'contract',
          width: '120px',
          dataType: 'tag',
          formatData: (params) => {
            return params
          },
          formatType: (params) => {
            if (params === 'ZTNS') {
              return ''
            } else if (params === 'KJNS') {
              return 'success'
            }else {
              return null
            }
          }
        },
        {
          label: "批号",
          prop: "updateBatchNo",
          width: "120px",
src/views/business/inspectionTask/index.vue
@@ -3,6 +3,12 @@
    <div style="height: 100%">
      <div class="search">
        <el-form :model="queryParams" ref="queryParams" size="small" :inline="true">
          <el-form-item label="IFS域" prop="contract">
            <el-select @keyup.enter.native="refreshTable" v-model="queryParams.contract" clearable placeholder="请选择" size="small">
              <el-option label="ZTNS" value="ZTNS"/>
              <el-option label="KJNS" value="KJNS"/>
            </el-select>
          </el-form-item>
          <el-form-item label="批号" prop="updateBatchNo" v-if="tabIndex !== 0">
            <el-input v-model="queryParams.updateBatchNo" clearable placeholder="请输入" size="small"
              @keyup.enter.native="refreshTable()">
@@ -363,6 +369,25 @@
      tableData: [],
      column: [
        {
          label: 'IFS域',
          prop: 'contract',
          width: '120px',
          dataType: 'tag',
          formatData: (params) => {
            return params
          },
          formatType: (params) => {
            if (params === 'ZTNS') {
              return ''
            } else if (params === 'KJNS') {
              return 'success'
            }else {
              return null
            }
          }
        },
        {
          label: "批号",
          prop: "updateBatchNo",
          width: "120px",
src/views/business/inspectionTask/inspection.vue
@@ -1066,6 +1066,7 @@
        ...this.ifsMaterialPropsForm,
        partNo: this.insOrder.partNo,
        lotBatchNo: this.insOrder.lotBatchNo,
        contract: this.insOrder.contract
      }).then((res)=>{
        if(res.code==200){
          this.$message.success("保存成功");
src/views/business/materialOrder/index.vue
@@ -3,7 +3,12 @@
    <div>
      <div class="search">
        <el-form :model="entity" ref="entity" size="small" :inline="true">
          <el-form-item label="IFS域" prop="contract">
            <el-select @keyup.enter.native="refreshTable" v-model="entity.contract" clearable placeholder="请选择" size="small">
              <el-option label="ZTNS" value="ZTNS"/>
              <el-option label="KJNS" value="KJNS"/>
            </el-select>
          </el-form-item>
          <el-form-item label="批号" prop="updateBatchNo">
            <el-input v-model="entity.updateBatchNo" clearable placeholder="请输入" size="small"
              @keyup.enter.native="goSearch">
@@ -241,6 +246,25 @@
      tableData: [],
      tableLoading: false,
      column: [
        {
          label: 'IFS域',
          prop: 'contract',
          width: '120px',
          dataType: 'tag',
          formatData: (params) => {
            return params
          },
          formatType: (params) => {
            if (params === 'ZTNS') {
              return ''
            } else if (params === 'KJNS') {
              return 'success'
            }else {
              return null
            }
          }
        },
        { label: '批号', prop: 'updateBatchNo' },
        { label: '零件号', prop: 'partNo' },
        { label: '零件描述', prop: 'partDesc' },
@@ -319,6 +343,25 @@
      tableData1: [],
      tableLoading1: false,
      column1: [
        {
          label: 'IFS域',
          prop: 'contract',
          width: '120px',
          dataType: 'tag',
          formatData: (params) => {
            return params
          },
          formatType: (params) => {
            if (params === 'ZTNS') {
              return ''
            } else if (params === 'KJNS') {
              return 'success'
            }else {
              return null
            }
          }
        },
        { label: '批号', prop: 'updateBatchNo' },
        {
          label: '委托编号',
@@ -415,6 +458,25 @@
      tableData2: [],
      tableLoading2: false,
      column2: [
        {
          label: 'IFS域',
          prop: 'contract',
          width: '120px',
          dataType: 'tag',
          formatData: (params) => {
            return params
          },
          formatType: (params) => {
            if (params === 'ZTNS') {
              return ''
            } else if (params === 'KJNS') {
              return 'success'
            }else {
              return null
            }
          }
        },
        {
          label: '委托编号',
          prop: 'entrustCode',
@@ -622,6 +684,25 @@
      tableData3: [],
      tableLoading3: false,
      column3: [
        {
          label: 'IFS域',
          prop: 'contract',
          width: '120px',
          dataType: 'tag',
          formatData: (params) => {
            return params
          },
          formatType: (params) => {
            if (params === 'ZTNS') {
              return ''
            } else if (params === 'KJNS') {
              return 'success'
            }else {
              return null
            }
          }
        },
        { label: '委托编号', prop: 'entrustCode', width: "160px", },
        {
          dataType: 'tag',
@@ -761,6 +842,25 @@
      tableData4: [],
      tableLoading4: false,
      column4: [
        {
          label: 'IFS域',
          prop: 'contract',
          width: '120px',
          dataType: 'tag',
          formatData: (params) => {
            return params
          },
          formatType: (params) => {
            if (params === 'ZTNS') {
              return ''
            } else if (params === 'KJNS') {
              return 'success'
            }else {
              return null
            }
          }
        },
        { label: '委托编号', prop: 'entrustCode', width: "160px", },
        {
          dataType: 'tag',
@@ -915,6 +1015,7 @@
        current: 1
      },
      entity: {
        contract: null,
        updateBatchNo: null,
        entrustCode: null,
        partDesc: null,
src/views/business/outsourcingFinishProduct/index.vue
@@ -3,6 +3,12 @@
    <div>
      <div class="search">
        <el-form :model="entity" ref="entity" size="small" :inline="true">
          <el-form-item label="IFS域" prop="contract">
            <el-select @keyup.enter.native="refreshTable" v-model="entity.contract" clearable placeholder="请选择" size="small">
              <el-option label="ZTNS" value="ZTNS"/>
              <el-option label="KJNS" value="KJNS"/>
            </el-select>
          </el-form-item>
          <el-form-item label="批号" prop="updateBatchNo">
            <el-input v-model="entity.updateBatchNo" clearable placeholder="请输入" size="small"
              @keyup.enter.native="goSearch">
@@ -217,6 +223,25 @@
      tableData: [],
      tableLoading: false,
      column: [
        {
          label: 'IFS域',
          prop: 'contract',
          width: '120px',
          dataType: 'tag',
          formatData: (params) => {
            return params
          },
          formatType: (params) => {
            if (params === 'ZTNS') {
              return ''
            } else if (params === 'KJNS') {
              return 'success'
            }else {
              return null
            }
          }
        },
        { label: '批号', prop: 'updateBatchNo' },
        { label: '零件号', prop: 'partNo' },
        { label: '零件描述', prop: 'partDesc' },
@@ -295,6 +320,25 @@
      tableData1: [],
      tableLoading1: false,
      column1: [
        {
          label: 'IFS域',
          prop: 'contract',
          width: '120px',
          dataType: 'tag',
          formatData: (params) => {
            return params
          },
          formatType: (params) => {
            if (params === 'ZTNS') {
              return ''
            } else if (params === 'KJNS') {
              return 'success'
            }else {
              return null
            }
          }
        },
        { label: '批号', prop: 'updateBatchNo' },
        {
          label: '委托编号',
@@ -391,6 +435,25 @@
      tableData2: [],
      tableLoading2: false,
      column2: [
        {
          label: 'IFS域',
          prop: 'contract',
          width: '120px',
          dataType: 'tag',
          formatData: (params) => {
            return params
          },
          formatType: (params) => {
            if (params === 'ZTNS') {
              return ''
            } else if (params === 'KJNS') {
              return 'success'
            }else {
              return null
            }
          }
        },
        {
          label: '委托编号',
          prop: 'entrustCode',
@@ -564,6 +627,25 @@
      tableData3: [],
      tableLoading3: false,
      column3: [
        {
          label: 'IFS域',
          prop: 'contract',
          width: '120px',
          dataType: 'tag',
          formatData: (params) => {
            return params
          },
          formatType: (params) => {
            if (params === 'ZTNS') {
              return ''
            } else if (params === 'KJNS') {
              return 'success'
            }else {
              return null
            }
          }
        },
        { label: '委托编号', prop: 'entrustCode', width: "160px", },
        {
          dataType: 'tag',
@@ -701,6 +783,7 @@
        current: 1
      },
      entity: {
        contract: null,
        updateBatchNo: null,
        entrustCode: null,
        partDesc: null,
src/views/business/rawMaterialInspection/index.vue
@@ -3,6 +3,12 @@
    <div class="search">
      <el-form :model="componentData" ref="componentData" size="small" :inline="true">
        <el-row>
          <el-form-item label="IFS域" prop="contract">
            <el-select @keyup.enter.native="refreshTable" v-model="componentData.contract" clearable placeholder="请选择" size="small">
              <el-option label="ZTNS" value="ZTNS"/>
              <el-option label="KJNS" value="KJNS"/>
            </el-select>
          </el-form-item>
          <el-form-item label="批号" prop="updateBatchNo">
            <el-input v-model="componentData.updateBatchNo" clearable placeholder="请输入" size="small"
              @keyup.enter.native="refreshTable"></el-input>
@@ -115,6 +121,9 @@
      :visible.sync="declareDialogVisible" width="800px" @close="resetFormData">
      <el-form ref="declareObj" :inline="true" :model="declareObj" :rules="declareObjRules" label-width="130px"
        label-position="right">
        <el-form-item class="declareObj-form-item" label="IFS域:" prop="contract" style="width: calc(50% - 54px)">
          <el-tag :type="declareObj.contract==='ZTNS'?'':'success'">{{declareObj.contract}}</el-tag>
        </el-form-item>
        <el-form-item class="declareObj-form-item" label="订单号:" prop="orderNo">
          <el-input v-model="declareObj.orderNo" :disabled="declareType !== 'add'" class="addObj-info" clearable
            placeholder="" size="small"></el-input>
@@ -217,6 +226,11 @@
          :header-cell-style="{textAlign:'center'}"
          :cell-style="{textAlign:'center'}"
        >
          <el-table-column label="IFS域" prop="contract" :min-width="100" width="100">
            <template slot-scope="scope">
              <el-tag :type="scope.row.contract==='ZTNS'?'':'success'">{{scope.row.contract}}</el-tag>
            </template>
          </el-table-column>
          <el-table-column label="订单编号" prop="orderNo" :min-width="100" width="100"></el-table-column>
          <el-table-column label="零件编号" prop="partNo" :min-width="150" width="150" show-overflow-tooltip></el-table-column>
          <el-table-column label="零件描述" prop="partDesc" :min-width="150" show-overflow-tooltip></el-table-column>
@@ -380,6 +394,25 @@
            }
          }
        },
        {
          label: 'IFS域',
          prop: 'contract',
          width: '120px',
          dataType: 'tag',
          formatData: (params) => {
              return params
          },
          formatType: (params) => {
            if (params === 'ZTNS') {
              return ''
            } else if (params === 'KJNS') {
              return 'success'
            }else {
              return null
            }
          }
        },
        { label: '订单号', prop: 'orderNo' },
        { label: '抵达的采购数量', prop: 'purQtyInStore', width: '140px', },
        { label: '批号', prop: 'updateBatchNo' },
@@ -488,6 +521,25 @@
              return null
            }
          }
        },
        {
          label: 'IFS域',
          prop: 'contract',
          width: '120px',
          dataType: 'tag',
          formatData: (params) => {
            return params
          },
          formatType: (params) => {
            if (params === 'ZTNS') {
              return ''
            } else if (params === 'KJNS') {
              return 'success'
            }else {
              return null
            }
          }
        },
        { label: '订单号', prop: 'orderNo' },
        { label: '订单分类', prop: 'orderTypeName' },
@@ -610,6 +662,7 @@
        materialProp: null, // 物料属性
      },
      componentData: { // 表格数据
        contract:null,
        updateBatchNo: null,
        partNo: null,
        partDesc: null,
src/views/business/reportPreparation/index.vue
@@ -2,6 +2,12 @@
  <div class="app-container">
    <div>
      <el-form :model="entity" ref="entity" size="small" :inline="true">
        <el-form-item label="IFS域" prop="contract">
          <el-select @keyup.enter.native="refreshTable" v-model="entity.contract" clearable placeholder="请选择" size="small">
            <el-option label="ZTNS" value="ZTNS"/>
            <el-option label="KJNS" value="KJNS"/>
          </el-select>
        </el-form-item>
        <el-form-item label="批号" prop="updateBatchNo">
          <el-input v-model="entity.updateBatchNo" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable()">
@@ -241,6 +247,7 @@
  data() {
    return {
      entity: {
        contract:null,
        queryStatus: null,
        code: null,
        typeSource: null,
@@ -367,6 +374,24 @@
      valueTableData: [],
      column: [
        {
          label: 'IFS域',
          prop: 'contract',
          width: '120px',
          dataType: 'tag',
          formatData: (params) => {
            return params
          },
          formatType: (params) => {
            if (params === 'ZTNS') {
              return ''
            } else if (params === 'KJNS') {
              return 'success'
            }else {
              return null
            }
          }
        },
        {
          label: "批号",
          prop: "updateBatchNo",
          width: "120px",
src/views/statisticalCharts/qualificationRateStatistics/index.vue
@@ -203,7 +203,7 @@
        }
      },
      lineColors: ['#91A0FC'],
      barColors: ['#13ce66', '#F56C6C'], // 合格绿 / 不合格红
      barColors: ['#9fe080', '#ff994d'], // 合格绿 / 不合格红
      barColors2: ['#A4EEDA'],
      pieTooltip: {
        trigger: 'item'
@@ -214,7 +214,7 @@
      },
      rawPieSeries: [
        {
          name: 'Access From',
          name: '',
          type: 'pie',
          radius: '70%',
          center: ['50%', '50%'],
@@ -224,7 +224,7 @@
            borderWidth: 2
          },
          label: {
            alignTo: 'edge',
            alignTo: 'labelLine',
            formatter: '{name|{b}}\n{time|{c}}',
            edgeDistance: 10,
            lineHeight: 15,
@@ -240,14 +240,14 @@
            length2: 40
          },
          data: [
            { value: 0, name: '不合格数量', itemStyle: { color: '#F56C6C' } },
            { value: 0, name: '合格数量', itemStyle: { color: '#67C23A' } }
            { value: 0, name: '不合格数量', itemStyle: {color: '#ff994d'} },
            { value: 0, name: '合格数量', itemStyle: { color: '#9fe080' } }
          ]
        }
      ],
      conductorPieSeries: [
        {
          name: 'Access From',
          name: '',
          type: 'pie',
          radius: '70%',
          center: ['50%', '50%'],
@@ -257,7 +257,7 @@
            borderWidth: 2
          },
          label: {
            alignTo: 'edge',
            alignTo: 'labelLine',
            formatter: '{name|{b}}\n{time|{c}}',
            edgeDistance: 10,
            lineHeight: 15,
@@ -273,14 +273,14 @@
            length2: 40,
          },
          data: [
            { value: 0, name: '不合格数量', itemStyle: { color: '#F56C6C' } },
            { value: 0, name: '合格数量', itemStyle: { color: '#67C23A' } },
            { value: 0, name: '不合格数量', itemStyle: { color: '#ff994d' } },
            { value: 0, name: '合格数量', itemStyle: { color: '#9fe080' } },
          ]
        }
      ],
      dlanPieSeries: [
        {
          name: 'Access From',
          name: '',
          type: 'pie',
          radius: '70%',
          center: ['50%', '50%'],
@@ -290,7 +290,7 @@
            borderWidth: 2
          },
          label: {
            alignTo: 'edge',
            alignTo: 'labelLine',
            formatter: '{name|{b}}\n{time|{c}}',
            edgeDistance: 10,
            lineHeight: 15,
@@ -306,8 +306,8 @@
            length2: 40,
          },
          data: [
            { value: 0, name: '不合格数量', itemStyle: { color: '#F56C6C' } },
            { value: 0, name: '合格数量', itemStyle: { color: '#67C23A' } },
            { value: 0, name: '不合格数量', itemStyle: { color: '#ff994d' } },
            { value: 0, name: '合格数量', itemStyle: { color: '#9fe080' } },
          ]
        }
      ],
@@ -418,11 +418,9 @@
  // 方法集合
  methods: {
    // 获取合格率图表数据
    setBarChartTitle() {
      this.echartsOptions.title.text = `${this.inspectionTitle}合格率趋势`;
    },
    getBar() {
      const types = this.currentMaterialProp.split(',');
      const requests = types.map(t => {
@@ -454,12 +452,44 @@
          }
        });
        const sortedDates = Object.keys(dateMap).sort();
        const weekOrderMap = {
          "星期一": 0,
          "星期二": 1,
          "星期三": 2,
          "星期四": 3,
          "星期五": 4,
          "星期六": 5,
          "星期日": 6
        };
        const yearOrderMap = {
          "1月": 0,
          "2月": 1,
          "3月": 2,
          "4月": 3,
          "5月": 4,
          "6月": 5,
          "7月": 6,
          "8月": 7,
          "9月": 8,
          "10月": 9,
          "11月": 10,
          "12月": 11
        };
        const sortedDates = Object.keys(dateMap).sort((a, b) => {
          if(a.includes("星期") && b.includes("星期")) {
            return weekOrderMap[a] - weekOrderMap[b];
          } else if(a.includes("月") && b.includes("月")) {
            return yearOrderMap[a] - yearOrderMap[b];
          } else {
            return new Date(a) - new Date(b);
          }
        });
        let qualifiedData = [];
        let unQualifiedData = [];
        let lineData = [];
        let xAxis = [];
        console.log(sortedDates)
        sortedDates.forEach(date => {
          const { qualified, unQualified } = dateMap[date];
          const total = qualified + unQualified;
@@ -475,6 +505,7 @@
        this.echartsSeries[1].data = unQualifiedData;
        this.echartsSeries[2].data = lineData;
        this.xAxis[0].data = xAxis;
        console.log(xAxis)
      });
    },
vue.config.js
@@ -59,36 +59,6 @@
        "@": resolve("src"),
      },
    },
    module: {
      rules: [
        // JS 主体文件处理(含 Babel、Thread Loader)
        {
          test: /\.js$/,
          use: [
            {
              loader: 'thread-loader',
              options: { workers: 4 }
            },
            'babel-loader'
          ],
          exclude: /\.worker\.js$/, // 👈 排除 worker 文件
          include: path.resolve(__dirname, 'src')
        },
        // 单独处理 Worker 文件
        {
          test: /\.worker\.js$/,
          use: {
            loader: 'worker-loader',
            options: {
              filename: '[name].[contenthash].worker.js',
              inline: 'fallback'
            }
          },
          type: 'javascript/auto' // 👈 强制 Webpack 不要按模块解析
        }
      ]
    },
    plugins: [
      // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件
      new CompressionPlugin({
@@ -119,6 +89,28 @@
      })
      .end();
    // 修改babel-loader配置,排除worker文件
    config.module
      .rule('js')
      .exclude
      .add(/\.worker\.js$/)
      .end();
    // 处理worker文件
    config.module
      .rule('worker')
      .test(/\.worker\.js$/)
      .use('worker-loader')
      .loader('worker-loader')
      .options({
        filename: '[name].[contenthash].worker.js',
        inline: 'fallback'
      })
      .end()
      .type('javascript/auto')
      .exclude.add(resolve('node_modules'))
      .end();
    config.when(process.env.NODE_ENV !== "development", (config) => {
      config
        .plugin("ScriptExtHtmlWebpackPlugin")