王震
2023-11-16 1f9c32908a68eef81f549b6986a9bc1f05056108
Merge remote-tracking branch 'origin/master'

# Conflicts:
# vue.config.js
已修改21个文件
444 ■■■■■ 文件已修改
src/api/aps/capability.js 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/plan/customerorder.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/styles/variables.scss 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/common/customerorder.vue 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/customerorder/customerorder-form.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/customerorder/index.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/customerorder/sample-customerorder-form.vue 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/customerorder/schedule-table.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/manufacturingorder/customerorder.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/manufacturingorder/index.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/manufacturingorder/productorder-form.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/masterproductionschedule/auto-manufacturingorder.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/masterproductionschedule/index.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/masterproductionschedule/source-table.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/finishedProductInspection/finishedProduct-form.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/processInspect/processInspect-form.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/rawMaterial/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/rawMaterial/rawMaterial-form.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/rawMaterial/rawMaterial-print.vue 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/technology/routing/routing-form.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/aps/capability.js
@@ -57,12 +57,12 @@
}
export function fetchCapabilityForOperation() {
  return request({
    url: '/mes/capability/all',
    method: 'get'
  })
}
// export function fetchCapabilityForOperation() {
//   return request({
//     url: '/mes/capability/all',
//     method: 'get'
//   })
// }
export function getByOperation(id) {
src/api/plan/customerorder.js
@@ -260,7 +260,7 @@
export function downloadProcessConfigFile(filename, bucket, originalFileName) {
  return request({
    url: '/mes/plan/customerOrder/processConfig/' + bucket + '/' + filename,
    method: 'get',
    method: 'post',
    responseType: 'blob'
  }).then((response) => {
    // 处理返回的文件流
@@ -391,7 +391,8 @@
// 作废
export function dropByContractNo(contractNo) {
  return request({
    url: '/mes/plan/customerOrder/dropByContractNo/' + contractNo,
    method: 'get'
    url: '/mes/plan/customerOrder/dropByContractNo',
    method: 'get',
    params: contractNo
  })
}
src/styles/variables.scss
@@ -2,7 +2,7 @@
$mainBg: #409eff;
/* 改变主题色变量 */
$--color-primary: #006eff;
$--color-primary: #875a7b;
/* 改变 icon 字体路径变量,必需 */
$--font-path: '~element-ui/lib/theme-chalk/fonts';
src/views/common/customerorder.vue
@@ -82,22 +82,22 @@
          {
            minWidth: '100',
            width: '100px',
            prop: 'customerOrderNo',
            prop: 'contractNo',
            label: '客户订单号',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          {
            minWidth: '120',
            prop: 'customerNo',
            label: '客户编号',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          // {
          //   minWidth: '120',
          //   prop: 'customerNo',
          //   label: '客户编号',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          {
            minWidth: '120',
            prop: 'customerName',
@@ -120,15 +120,15 @@
              return this.coStateList
            }
          },
          {
            minWidth: '120',
            prop: 'coLineNo',
            label: '行号',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'text'
          },
          // {
          //   minWidth: '120',
          //   prop: 'coLineNo',
          //   label: '行号',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'text'
          // },
          {
            minWidth: '120',
            width: '100px',
@@ -142,7 +142,7 @@
          {
            minWidth: '120',
            width: '100px',
            prop: 'partName',
            prop: 'productName',
            label: '零件名称',
            sort: true,
            isTrue: true,
@@ -160,7 +160,7 @@
          },
          {
            minWidth: '140',
            prop: 'requireNumber',
            prop: 'buyQtyDue',
            label: '已下发数量',
            sort: true,
            isTrue: true,
@@ -169,7 +169,7 @@
          },
          {
            minWidth: '80',
            prop: 'unit',
            prop: 'otcUnit',
            label: '零件单位',
            sort: true,
            isTrue: true,
@@ -179,25 +179,25 @@
          {
            minWidth: '140',
            width: '120',
            prop: 'wantedDeliveryDate',
            label: '期望交货时间',
            prop: 'deliveryDate',
            label: '交货时间',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'datetimerange',
            formatter: this.formatDutyDate
          },
          {
            minWidth: '200',
            width: '120',
            prop: 'plannedDeliveryDate',
            label: '计划交货时间',
            sort: true,
            isTrue: true,
            isSearch: true,
            searchInfoType: 'datetimerange',
            formatter: this.formatDutyDate
          },
          // {
          //   minWidth: '200',
          //   width: '120',
          //   prop: 'plannedDeliveryDate',
          //   label: '计划交货时间',
          //   sort: true,
          //   isTrue: true,
          //   isSearch: true,
          //   searchInfoType: 'datetimerange',
          //   formatter: this.formatDutyDate
          // },
          {
            minWidth: '200',
            width: '120',
src/views/plan/customerorder/customerorder-form.vue
@@ -215,7 +215,7 @@
                    slot="append"
                    icon="el-icon-search"
                    @click="openSalesPartDialog()"
                    v-show="dataForm.id"
                    v-show="dataForm.id==null"
                  ></el-button>
                </el-input>
              </el-form-item>
src/views/plan/customerorder/index.vue
@@ -38,8 +38,9 @@
            </el-button>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item
                :key="index"
                :command="item.command"
                v-for="item in documentTagArr"
                v-for="(item,index) in documentTagArr"
                :disabled="item.disabled">
                {{ item.label }}
              </el-dropdown-item>
@@ -56,8 +57,9 @@
            </el-button>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item
                :key="index"
                :command="item.command"
                v-for="item in commitStateTagArr"
                v-for="(item,index) in commitStateTagArr"
                :disabled="item.disabled"
                >{{ item.label }}</el-dropdown-item
              >
@@ -82,13 +84,13 @@
            @click="()=>exportDialogVisible=true"
            >导出台账</el-button
          >
          <el-button
          <!-- <el-button
            v-if="permissions.plan_customerorder_return"
            style="margin-left:10px;"
            type="primary"
            @click="returnOrder"
            >订单退回</el-button
          >
          > -->
        </template>
      </ttable>
@@ -1186,13 +1188,13 @@
    },
    // 作废
    cancelHandle(row) {
      this.$confirm('是否确认作废销售订单号为' + row.customerOrderNo + '提示', {
      this.$confirm('确认作废id为【' + row.id + '】的数据?','提示' , {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        closeOnClickModal: false,
        type: 'warning'
      }).then(() => {
        dropByContractNo(row.customerOrderNo).then((res) => {
        dropByContractNo({id:row.id}).then((res) => {
          if (res.data.code === 0) {
            this.$message.success('作废成功')
            this.getData()
src/views/plan/customerorder/sample-customerorder-form.vue
@@ -68,8 +68,8 @@
        <el-row>
          <el-col :span="6">
            <el-form-item label="业务员" prop="salesMan">
              <el-select @change="selsctionSales" v-model="salesSelectData" style="width:100%">
                <el-option v-for="(item,index) in staffOptions" :key="index" :value="item" :label="item.staffName"/>
              <el-select @change="selsctionSales" filterable v-model="salesSelectData" style="width:100%">
                <el-option v-for="(item,index) in staffOptions" :key="index" :value="item.staffNo+','+item.staffName" :label="item.staffName"/>
              </el-select>
            </el-form-item>
          </el-col>
@@ -406,7 +406,6 @@
import { addObj } from '@/api/plan/customer'
import { remote } from '@/api/admin/dict'
import PartDialog from '@/views/common/part.vue'
import { validateSixDecimal } from '@/util/validate'
import {dateFormat} from '@/util/date'
import { chooseStaff } from '@/api/admin/productType'
import { tableOption } from '@/const/crud/customerOrder/customerOrderForm'
@@ -414,6 +413,26 @@
export default {
  components: {
    PartDialog
  },
  watch:{
    visible(newVal){
      if(!newVal){
        this.tableData = [{
          "$cellEdit": true,
          "$index": 0,
          "partNo": "",
          "customerPartSpec": "",
          "manufactureAttr": "",
          "productName": "",
          "productType": "",
          "otcUnit": "",
          "buyQtyDue": "",
          "shippingAddress": "",
          "remark": "",
          "isTrusted": true
        }]
      }
    }
  },
  data() {
    return {
@@ -470,8 +489,11 @@
  },
  methods: {
    selsctionSales(data){
        this.dataForm.salesMan =  data.staffName
        this.dataForm.salerWorkCode = data.staffNo
      if(data){
        let arr = data.split(",")
        this.dataForm.salesMan =  arr[1]
        this.dataForm.salerWorkCode = arr[0]
      }
    },
    getStaffOptions(){
      chooseStaff().then((response)=>{
src/views/plan/customerorder/schedule-table.vue
@@ -67,7 +67,7 @@
              <el-form-item>{{ scope.row.buyQtyDue }}</el-form-item>
            </template>
          </el-table-column>
          <el-table-column
          <!-- <el-table-column
            header-align="center"
            align="center"
            label="已计划数量"
@@ -76,7 +76,7 @@
            <template slot-scope="scope">
              <el-form-item>{{ scope.row.requireNumber }}</el-form-item>
            </template>
          </el-table-column>
          </el-table-column> -->
          <el-table-column
            prop="remainderRequired"
            header-align="center"
@@ -85,14 +85,15 @@
            width="170px"
          >
            <template scope="scope">
              <el-form-item
              <el-form-item>{{ scope.row.qtyPlaned }}</el-form-item>
              <!-- <el-form-item
                :prop="'customer.' + scope.$index"
                :rules="rules.qtyPlaned"
              >
                <el-input
                  v-model="scope.row.qtyPlaned"
                  placeholder=""
                ></el-input>
                ></el-input> -->
              </el-form-item>
            </template>
          </el-table-column>
@@ -222,19 +223,26 @@
        this.dataForm.customer = []
        const _that = this
        customer.forEach((item) => {
          console.log(item);
           item.qtyPlaned=item.buyQtyDue
          const outPutBatchList = []
          _that.$set(item, 'outPutBatchList', outPutBatchList)
          customerList.push(item)
        })
        this.dataForm.customer = JSON.parse(JSON.stringify(customerList))
        console.log(this.dataForm.customer);
      })
      // this.dataForm.forEach(item=>{
      //   console.log(1111);
      //       console.log("循环",item);
      //       item.qtyPlaned=item.buyQtyDue
      //   })
        console.log("data",this.dataForm);
    },
    dataFormSubmit() {
      this.isSubmit = true
      this.$refs.dataForm.validate((valid) => {
        if (valid) {
          // console.log(this.dataForm);
          // return
          checkSchedule(this.dataForm.customer)
            .then((res) => {
              if (res.data.data.success) {
src/views/plan/manufacturingorder/customerorder.vue
@@ -37,9 +37,9 @@
                </el-form-item>
              </el-col>
              <el-col :span="12">
                <el-form-item label="客户订单号" prop="customerOrderNo">
                <el-form-item label="客户订单号" prop="contractNo">
                  <el-input
                    v-model="dataForm.customerOrderNo"
                    v-model="dataForm.contractNo"
                    placeholder=""
                    :disabled="!ediSource"
                  ></el-input>
src/views/plan/manufacturingorder/index.vue
@@ -89,14 +89,14 @@
            :loading="loadingStructIfs"
            >物料同步ERP
          </el-button> -->
          <el-button
          <!-- <el-button
            v-if="permissions.manufacturingorder_refresh_ifsorder"
            @click="refreshIfsorder()"
            type="primary"
            style="margin-left:10px;"
            :loading="refreshIfsorderLoading"
            >刷新ifs车间订单号
          </el-button>
          </el-button> -->
          <el-button
            @click="exportExcel"
@@ -105,12 +105,12 @@
            :loading="loadingExcel"
            >导出
          </el-button>
          <el-button
          <!-- <el-button
            v-if="permissions.manufacturingorder_update_orderno"
            @click="updateOrderNo"
            type="primary"
            style="margin-left:10px;"
            >更新订单号
            >更新订单号 -->
          </el-button>
        </template>
      </ttable>
@@ -934,12 +934,12 @@
        fun: this.getOperationTaskByCustomer
      })
    }
    if (this.permissions.manufacturingorder_order_merge) {
      this.table.toolbar.push({
        text: '订单合并',
        fun: this.openOrderMerge
      })
    }
    // if (this.permissions.manufacturingorder_order_merge) {
    //   this.table.toolbar.push({
    //     text: '订单合并',
    //     fun: this.openOrderMerge
    //   })
    // }
    /**
     * {
src/views/plan/manufacturingorder/productorder-form.vue
@@ -501,7 +501,7 @@
                          @refreshTestStandardInfo="refreshTestStandardInfo"
                        ></testStandardTable>
                      </el-tab-pane>
                      <el-tab-pane
                      <!-- <el-tab-pane
                        label="抽检规则"
                        key="tb2"
                        id="tb2"
@@ -587,7 +587,7 @@
                            </el-table>
                          </div>
                        </div>
                      </el-tab-pane>
                      </el-tab-pane> -->
                    </el-tabs>
                  </el-col>
                </el-row>
src/views/plan/masterproductionschedule/auto-manufacturingorder.vue
@@ -155,7 +155,7 @@
                </el-select>
              </template>
            </el-table-column>
            <el-table-column
            <!-- <el-table-column
              prop="isReportOperation"
              label="IFS车间订单接收时报告工序"
              align="center"
@@ -163,7 +163,7 @@
              <template slot-scope="scope">
                <span>{{ scope.row.isReportOperation ? '是' : '否' }}</span>
              </template>
            </el-table-column>
            </el-table-column> -->
          </el-table>
        </div>
      </div>
@@ -251,7 +251,7 @@
                    unit: item.unit,
                    workShop: null,
                    workshopTypeCode: 'M',
                    requiredDate: null,
                    requiredDate: this.masterProduction.requiredDate,
                    id: item.id,
                    manufactureAttr: this.masterProduction.manufactureAttr,
                    isReportOperation: this.isReportOperation
@@ -417,6 +417,7 @@
    },
    getWorkShopOptions() {
      remote('work_shop').then((response) => {
        console.log("高压",response);
        if (response.data.code === 0) {
          this.workShopOptions = response.data.data
        } else {
src/views/plan/masterproductionschedule/index.vue
@@ -82,14 +82,14 @@
              >
            </el-dropdown-menu>
          </el-dropdown>
          <el-button
          <!-- <el-button
            v-if="permissions.masterproductionschedule_submit_oa"
            @click="commitOa()"
            type="primary"
            style="margin-left:10px;"
            :loading="loadingOa"
            >提交OA
          </el-button>
          </el-button> -->
          <!-- <el-button
            v-if="permissions.masterproductionschedule_sync_scm"
            @click="syncScm()"
@@ -592,12 +592,12 @@
        ],
        toolbar: [],
        operator: [
          {
            text: '订单预留',
            type: 'text',
            size: 'small',
            fun: this.customReserved
          },
          // {
          //   text: '订单预留',
          //   type: 'text',
          //   size: 'small',
          //   fun: this.customReserved
          // },
          // {
          //   text: '查看库存',
          //   type: 'text',
@@ -611,11 +611,17 @@
            fun: this.searchMasterPlanSourceHandle
          },
          {
            text: '订单',
            text: '作废',
            type: 'text',
            size: 'small',
            fun: this.searchOrderHandle
          }
            fun: this.deleteMainPlan
          },
          // {
          //   text: '订单',
          //   type: 'text',
          //   size: 'small',
          //   fun: this.searchOrderHandle
          // }
        ],
        operatorConfig: {
          fixed: 'right',
@@ -684,18 +690,18 @@
      })
    }
    if (this.permissions.masterproductionschedule_create_outsourcing) {
      this.table.toolbar.push({
        text: '创建委外订单',
        fun: this.createOutsourcingOrder
      })
      // this.table.toolbar.push({
      //   text: '创建委外订单',
      //   fun: this.createOutsourcingOrder
      // })
    }
    if (this.permissions.masterproductionschedule_create_order_manual) {
      this.orderTypeArr.push({
        label: '手动新增',
        command: 'MANUAL',
        disabled: false,
        permitArr: ['02processed']
      })
      // this.orderTypeArr.push({
      //   label: '手动新增',
      //   command: 'MANUAL',
      //   disabled: false,
      //   permitArr: ['02processed']
      // })
    }
    if (this.permissions.masterproductionschedule_create_order_auto) {
      this.orderTypeArr.push({
@@ -708,6 +714,7 @@
    this.getSysParam(sysParam.IS_REPORT_OPERATION)
  },
  methods: {
    deleteMainPlan(row){},
    getSysParam(paramKey) {
      getSysParam(paramKey).then((response) => {
        var paramVal = response.data.data
src/views/plan/masterproductionschedule/source-table.vue
@@ -32,7 +32,7 @@
      </el-table-column>
      <el-table-column label="备注" show-overflow-tooltip prop="remark">
      </el-table-column>
      <el-table-column
      <!-- <el-table-column
        header-align="center"
        align="center"
        label="操作"
@@ -57,7 +57,7 @@
            >保存
          </el-button>
        </template>
      </el-table-column>
      </el-table-column> -->
    </el-table>
    <div slot="footer" class="dialog-footer">
      <el-button type="info" @click="visible = false">关闭</el-button>
src/views/quality/finishedProductInspection/finishedProduct-form.vue
@@ -111,12 +111,9 @@
                                        <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"
                                                <el-option v-for="item in dataVal" :key="item.value" :label="item.label"
                                                    :value="item.value">
                                                </el-option> -->
                                                <el-option v-for="item in dataVal" :key="item.value" :label="(item.value === '1' ? '是' : '否')" :value="item.value"></el-option>
                                                </el-option>
                                            </el-select>
                                            <span v-if="resultVal != null && processInspectVo.id != null"
                                                v-text="scope.row.empiricalValueAddss[index]"></span>
@@ -227,13 +224,12 @@
export default {
    data() {
        return {
            // 1 是  0否
            dataVal: [{
                label: '1',
                value: '1'
                label: '是',
                value: '是'
            }, {
                label: '0',
                value: '0'
                label: '否',
                value: '否'
            }],
            resultVal: null,
            deviceList: [],
@@ -280,7 +276,7 @@
        this.init()
    },
    methods: {
        submitSave(){
            let pro = 0
            this.inspectionItems.forEach(item => {
@@ -379,7 +375,6 @@
                        material: result.material,
                        userName: Array.from(new Set(userList)).join(","),
                        result: this.resultVal==null ? '' : this.resultVal,
                    }]
                }).catch(error=>{
                    console.log(error)
src/views/quality/processInspect/processInspect-form.vue
@@ -86,14 +86,14 @@
                </el-row>
                <el-row style="width:100%;">
                    <el-col :span="24">
                        <el-table border
                            :data="inspectionItems"
                        <el-table border
                            :data="inspectionItems"
                            height="400"
                            :header-cell-style="{ textAlign: 'center', color: 'black', backgroundColor: '#fafafa' }"
                            :cell-style="{ textAlign: 'center' }"
                            row-key="iid"
                            :cell-style="{ textAlign: 'center' }"
                            row-key="iid"
                            default-expand-all style="width: 100%"
                            ref="table"
                            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>
@@ -120,9 +120,9 @@
                                                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.value === '1' ? '是' : '否')" :value="item.value"></el-option>
                                                <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>
@@ -143,7 +143,7 @@
                                    </div>
                                </template>
                            </el-table-column>
                            <el-table-column
                            <el-table-column
                                label="检验描述" width="240" style="text-align: center;">
                                <template slot-scope="scope">
                                    <el-col v-if="scope.row.itype === '1'">
@@ -170,7 +170,7 @@
                                         <span v-if="resultVal != null && processInspectVo.id != null"
                                                v-text="scope.row.inote"></span>
                                        </el-tooltip>
                                    </el-col>
                                    </el-col>
                                </template>
                            </el-table-column>
                            <el-table-column label="结论" fixed="right" min-width="100">
@@ -217,7 +217,7 @@
        </div>
    </div>
</template>
<script>
import {
    chooseMater,
@@ -232,11 +232,11 @@
    data() {
        return {
            dataVal: [{
                label: '1',
                value: '1'
                label: '是',
                value: '是'
            }, {
                label: '0',
                value: '0'
                label: '否',
                value: '否'
            }],
            resultVal: null,
            technologyList: [],
@@ -434,7 +434,7 @@
                row.empiricalValueAddss.forEach(e => {
                    str += e + ","
                })
                // if (note === undefined || note === '' || note === null) {
                //     return
                // }
@@ -444,7 +444,7 @@
                    return
                }
                let obj = {
                    devideId: row.eId,
                    ppid: row.iid,
@@ -526,7 +526,7 @@
    },
}
</script>
<style scoped>
.finishedProduct-detail {
    width: 100%;
@@ -590,4 +590,4 @@
    border-top: 0 !important;
    cursor: pointer !important;
}
</style>
</style>
src/views/quality/rawMaterial/index.vue
@@ -262,7 +262,6 @@
        //查看报告按钮
        previewFun(row){
            getObj(row.id).then(res=>{
                console.log(res);
                this.printFormData = res.data.data
                this.printDialogVisible = true
            }).catch(error=>{
@@ -275,9 +274,9 @@
            PrintJS({
                printable: "printRaw",
                type: "html",
                maxWidth: 900,
                maxWidth: 880,
                // header: "原材料检测报告",
                style: '@page {margin: 0 5mm}',
                style: '@page {margin: 0 5mm;}',
                targetStyles: ["*"],
                ignoreElements: ["no-ignore"],
                orientation: 'portrait'
src/views/quality/rawMaterial/rawMaterial-form.vue
@@ -164,11 +164,8 @@
                          :disabled="scope.row.deviceId == null ||  (dataForm.id!=null&&resultVal!=null)"
                          v-model="scope.row.testValueList[index]"
                          placeholder="请输入或选择检测值" @change="updateTestValue(scope.row,scope.$index)">
                            <!-- <el-option label="是" value="是"/>
                            <el-option label="否" value="否"/> -->
                            <el-option v-for="item in dataVal" :key="item.value" :label="(item.value === '1' ? '是' : '否')" :value="item.value"></el-option>
                            <el-option label="是" value="是"/>
                            <el-option label="否" value="否"/>
                          </el-select>
                        </el-tooltip>
                      </div>
@@ -283,13 +280,6 @@
    },
    data(){
        return{
          dataVal: [{
                label: '1',
                value: '1'
            }, {
                label: '0',
                value: '0'
            }],
            userdata:[],
            currentRow:[],
            userlist:[],
@@ -590,17 +580,19 @@
                    }
                    ele.iid = Math.random()
                    ele.father = item.rpFather
                    if (item.children != undefined) {
                    item.children.forEach(obj => {
                      let arr= []
                      if(obj.userName){
                        userNameList.push(obj.userName)
                      }
                      let arr= []
                      if(obj.testValue){
                        arr = obj.testValue.split(",")
                        console.log(arr);
                      }
                      if (arr.length > this.empiricalValueAdd) {
                                    this.empiricalValueAdd = arr.length
                                }
                      let o = {
                        deviceId: obj.deviceId,
                        deviceName: obj.deviceName,
@@ -618,8 +610,7 @@
                      ele.children.push(o)
                    })
                    this.list.push(ele)
                    console.log(this.list,111111111111);
                }
                }}
            })
            this.conclusionTable = [{
              code: data.code,
src/views/quality/rawMaterial/rawMaterial-print.vue
@@ -71,19 +71,19 @@
                style="width:620pt;border-collapse:collapse;border:1pt solid windowtext">
                <tbody>
                    <tr>
                        <td width="121" colspan="2" style="width:110pt;border:solid windowtext 1.0pt;padding:0.2cm 1.4pt 0.2cm 1.4pt">
                        <td width="121" colspan="2" style="width:120pt;height:50pt;border:solid windowtext 1.0pt;padding:1pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span
                                    style="font-size:9.0pt;font-family:宋体">零件名称</span></p>
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Part Description</span>
                            </p>
                        </td>
                        <td width="127" colspan="4" style="width:95.5pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                        <td width="127" colspan="5" style="width:95.5pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center">
                                <span lang="EN-US" style="font-family:&quot;Arial&quot;,sans-serif" v-text="tableData.name"></span>
                            </p>
                        </td>
                        <td width="113" colspan="4" style="width:84.95pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                        <td width="113" colspan="3" style="width:84.95pt;border:solid windowtext 1.0pt;border-left:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span
                                    style="font-size:9.0pt;font-family:宋体">型</span><span lang="EN-US"
                                    style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">&nbsp;&nbsp;&nbsp;
@@ -107,18 +107,18 @@
                        </td>
                    </tr>
                    <tr>
                        <td width="101" colspan="2" style="width:110pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.2cm 1.4pt 0.2cm 1.4pt">
                        <td width="101" colspan="2" style="width:110pt;height:50pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.2cm 1.4pt 0.2cm 1.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span
                                    style="font-size:9.0pt;font-family:宋体">检验仪器</span></p>
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Inspection
                                    instrument</span></p>
                        </td>
                        <td width="127" colspan="4" style="width:95.5pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                        <td width="127" colspan="5" style="width:95.5pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif" v-text="deviceStr"></span></p>
                        </td>
                        <td width="113" colspan="4" style="width:84.95pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                        <td width="113" colspan="3" style="width:84.95pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span
                                    style="font-size:9.0pt;font-family:宋体">检验数量</span></p>
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
@@ -163,20 +163,20 @@
                        </td>
                    </tr>
                    <tr>
                        <td width="145" colspan="3" style="width:109.1pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.4cm 5.4pt 0.4cm 5.4pt">
                        <td width="145" colspan="3" style="width:109.1pt;height:40pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.4cm 5.4pt 0.4cm 5.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span
                                    style="font-size:9.0pt;font-family:宋体">技术要求</span></p>
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">Technical
                                    Requirement</span></p>
                        </td>
                        <td width="59" colspan="2" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 4.4pt 0.2cm 4.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center">
                        <td width="59" colspan="3" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 4.4pt 0.2cm 4.4pt">
                            <div class="MsoNormal" align="center" style="text-align:center">
                                <span style="font-size:9.0pt;font-family:宋体">公差</span>
                                <span lang="EN-US" style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">TOL</span>
                            </p>
                                <p lang="EN-US" style="font-size:9.0pt;text-align: center;font-family:&quot;Arial&quot;,sans-serif">TOL</p>
                            </div>
                        </td>
                        <td width="43" v-for="(item,index) in 13" :key="index" colspan="1" style="width:32.2pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                        <td width="43" v-for="(item,index) in columnLength" :key="index" colspan="1" style="width:32.2pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-size:9.0pt;font-family:&quot;Arial&quot;,sans-serif">{{item>9?item:'0'+item}}</span></p>
                        </td>
@@ -184,7 +184,7 @@
                </tbody>
                <tbody v-for="(item,index) in projectList" :key="index">
                    <tr style="height:19.85pt">
                        <td width="85" rowspan="16" style="width:63.95pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                        <td width="85" :rowspan="item.children.length" style="width:63.95pt;border:solid windowtext 1.0pt;border-top:1pt solid windowtext;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span
                                    style="font-family:宋体" v-text="item.rpFather"></span></p>
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
@@ -194,7 +194,7 @@
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif" v-text="item.children[0].rpName"></span></p>
                        </td>
                        <td width="59" colspan="2" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                        <td width="59" colspan="3" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif"  v-text="item.children[0].required"></span></p>
                        </td>
@@ -202,11 +202,13 @@
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif">{{val}}</span></p>
                        </td>
                        <td width="74" style="width:55.8pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                            <p v-if="item.children[0].testState==1" class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                        <td width="74" style="width:70pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.1cm 2.4pt 0.1cm 2.4pt;height:19.85pt">
                            <p v-if="item.children[0].testState=='1'" class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif">合格</span></p>
                            <p v-else class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                            <p v-if="item.children[0].testState=='0'" class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif">不合格</span></p>
                            <p v-else class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif"></span></p>
                        </td>
                    </tr>
                    <tr style="height:19.85pt" v-for="(j,index) in (item.children.slice(1))" :key="index">
@@ -215,7 +217,7 @@
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif">{{j.rpName}}</span></p>
                        </td>
                        <td width="59" colspan="2" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                        <td width="59" colspan="3" style="width:44.4pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif">{{j.required}}</span></p>
                        </td>
@@ -223,9 +225,12 @@
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif">{{testValue}}</span></p>
                        </td>
                        <td width="43" colspan="1" style="width:32.2pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt;height:19.85pt">
                            <p class="MsoNormal" align="center" style="text-align:center"><span lang="EN-US"
                                    style="font-family:&quot;Arial&quot;,sans-serif">&nbsp;</span></p>
                        <td width="43" colspan="1" style="width:70pt;border-top:1pt solid windowtext;border-left:1pt solid windowtext;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0.1cm 2.4pt 0.1cm 2.4pt;height:19.85pt">
                            <p class="MsoNormal" align="center" style="text-align:center">
                                <span lang="EN-US" style="font-family:&quot;Arial&quot;,sans-serif">
                                    {{ j.testState | formatState}}
                                </span>
                            </p>
                        </td>
                    </tr>
                </tbody>
@@ -337,6 +342,21 @@
            projectList: [],
            deviceStr: null,
            childrenData: [],
            columnLength: 12,
        }
    },
    filters:{
        formatState(state){
            if(state){
                if(state == "1"){
                    return "合格"
                }
                if(state == "0"){
                    return "不合格"
                }
                return null
            }
            return null
        }
    },
    methods:{
@@ -361,28 +381,30 @@
                            required: '',
                            rpName: '',
                            rpUnit: '',
                            testState: '',
                            testState: null,
                            userName: '',
                            testValueList: new Array(13)
                            testValueList: new Array(this.columnLength)
                        }
            let rowNum = 15
            let columnNum = this.columnLength
            if(list && list.length<2){
                list.forEach(item=>{
                    if(item.children && item.children.length < 15){
                        let size = 15 - item.children.length
                    if(item.children && item.children.length < rowNum){
                        rowNum-=item.children.length
                        for(let j=0;j<item.children.length;j++){
                            let arr = []
                            if(item.children[j].testValue){
                                arr = item.children[j].testValue.split(",")
                            }
                            item.children[j].testValueList = arr
                            if(item.children[0].testValueList.length<13){
                                let num = 13 - item.children[j].testValueList.length
                            if(item.children[0].testValueList.length< columnNum ){
                                let num = columnNum - item.children[j].testValueList.length
                                for(let i=0;i<num;i++){
                                    item.children[j].testValueList.push("")
                                }
                            }
                        }
                        for(let i=0;i< size;i++){
                        for(let i=0;i< rowNum;i++){
                            item.children.push(data)
                        }
                    }
@@ -392,30 +414,39 @@
                list.forEach(item=>{
                    if(item.children){
                        size+=item.children.length
                        item.children.forEach(obj=>{
                            if(obj.testValue){
                                let testValueList = obj.testValue.split(",")
                                obj.testValueList = testValueList
                                if(testValueList.length < columnNum){
                                    let len = columnNum-testValueList.length
                                    for(var i=0;i<len;i++){
                                        obj.testValueList.push("")
                                    }
                                }
                            }
                        })
                    }
                })
                if(size<15){
                    let num = 15 - size
                if(size < rowNum){
                    let num = rowNum - size
                    for(let i=0;i<num;i++){
                        list[list.length-1].children.push(data)
                    }
                }
            }
            // this.projectList = list
            console.log("list----",list)
            this.projectList = list
        }
    },
    created(){
        this.tableData = this.formData
        this.initData()
        this.initProjectList(this.projectList)
        console.log("aa--",this.tableData)
    },
    watch:{
        formData(newVal){
            if(newVal){
                this.projectList = []
                console.log(newVal)
                this.tableData = newVal
                this.initData()
                this.initProjectList(this.projectList)
src/views/technology/routing/routing-form.vue
@@ -464,7 +464,7 @@
                </el-checkbox-group>
              </div>
              <el-divider content-position="left">能力</el-divider>
              <!-- <el-divider content-position="left">能力</el-divider>
              <div class="node-content">
                <label
                  v-if="capacities == null || capacities.length == 0"
@@ -473,7 +473,7 @@
                  没有配置能力
                </label>
                <el-tag
               <el-tag
                  size="medium"
                  v-for="item in capacities"
                  :key="item.id"
@@ -484,8 +484,8 @@
                  effect="dark"
                >
                  {{ item.label }}
                </el-tag>
              </div>
                </el-tag>
              </div> -->
              <el-divider content-position="left">备注</el-divider>
              <div class="node-content-remark">
                <rich-text
vue.config.js
@@ -5,6 +5,7 @@
const url = 'http://192.168.0.23:9999'
  // const url = 'http://192.168.0.60:9999'
  // const url = 'http://localhost:9999'
// const url = 'http://ztt-gateway:9999'
const localUrl = 'http://localhost:8089'