zss
2023-12-14 fd5845de8d0200ae55710e07e19fc31e3e67b422
Merge remote-tracking branch 'origin/master'
已修改23个文件
769 ■■■■■ 文件已修改
src/const/crud/customerOrder/customerOrderForm.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basic/customizeparamtemplatetype/templatetype-form.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basic/location/location-form.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basic/warehouse/warehouse-form.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/common/ztt-table.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/customerorder/index.vue 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/operationtask/operationtask-form.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/plan/productionschedul/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/product/workbench/operation-task-pane.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/product/workbench/taskinfo-pane.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/product/workbench/workReportCard.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/finishedProductInspection/finishedProduct-form.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/newReport/ReportForm.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/processInspect/processInspect-form.vue 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/rawMaterial/rawMaterial-form.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/quality/teststandard/standard-form.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/technology/completeproductstructure/completeproductstructure-form.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/technology/completeproductstructure/index.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/technology/document/document-form.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/technology/operation/operation-form.vue 135 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/technology/routing/routing-form.vue 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/technology/structure/index.vue 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/warehouse/changestock/index.vue 306 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/const/crud/customerOrder/customerOrderForm.js
@@ -26,6 +26,7 @@
  delBtn: false,
  align: 'center',
  addBtn: false,
  addBtnText: '添加行',
  addRowBtn: true,
  refreshBtn: false, // 是否显示刷新按钮
  columnBtn: false, // 是否显示显影按钮H
src/views/basic/customizeparamtemplatetype/templatetype-form.vue
@@ -114,6 +114,9 @@
              this.visible = false
              this.isSubmit = false
              this.$emit('refreshDataList')
            }).catch(error=>{
              console.error(error);
              this.isSubmit = false
            })
          } else {
            addObj(this.dataForm).then((data) => {
@@ -121,6 +124,9 @@
              this.visible = false
              this.isSubmit = false
              this.$emit('refreshDataList')
            }).catch(error=>{
              console.error(error);
              this.isSubmit = false
            })
          }
        } else {
src/views/basic/location/location-form.vue
@@ -396,6 +396,9 @@
              this.visible = false
              this.isSubmit = false
              this.$emit('refreshDataList')
            }).catch(error=>{
              console.error(error);
              this.isSubmit = false
            })
          } else {
            addObj(this.dataForm).then((data) => {
@@ -403,6 +406,9 @@
              this.visible = false
              this.isSubmit = false
              this.$emit('refreshDataList')
            }).catch(error=>{
              console.error(error);
              this.isSubmit = false
            })
          }
        } else {
src/views/basic/warehouse/warehouse-form.vue
@@ -322,6 +322,9 @@
              this.visible = false
              this.isSubmit = false
              this.$emit('refreshDataList')
            }).catch(error=>{
              console.error(error);
              this.isSubmit = false
            })
          } else {
            addObj(this.dataForm).then((data) => {
@@ -329,6 +332,9 @@
              this.visible = false
              this.isSubmit = false
              this.$emit('refreshDataList')
            }).catch(error=>{
              console.error(error);
              this.isSubmit = false
            })
          }
        } else {
src/views/common/ztt-table.vue
@@ -245,6 +245,7 @@
            :show-overflow-tooltip="!item.noShowTip"
            :width="inMemoryColWidth[item.prop] || item.width"
            :prop="item.prop"
            align="center"
          >
            <template slot="header" slot-scope="scope">
              <template v-if="item.isSearch">
@@ -324,7 +325,7 @@
                <template v-if="!item.render">
                  <template v-if="item.formatter">
                    <span v-if="item.isTag" style="text-align: center;">
                      <el-tag style="width:50px;margin: 3px;" :type="scope.row[item.prop] == 0 ? 'success' : 'info'">
                      <el-tag style="width:60px;margin: 3px;" :type="scope.row[item.prop] == 0 ? 'success' : 'info'">
                        <span v-html="item.formatter(scope.row, item, scope.row[item.prop])"></span>
                      </el-tag>
                    </span>
src/views/plan/customerorder/index.vue
@@ -12,22 +12,6 @@
        ref="customerOrderTable"
      >
        <template #toolbar>
          <!-- <el-dropdown
            v-if="permissions.customerorder_state_change"
            @command="handleCommand"
          >
            <el-button>
              状态改变<i class="el-icon-arrow-down el-icon--right"></i>
            </el-button>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item
                :command="item.command"
                v-for="item in stateTagArr"
                :disabled="item.disabled">
                {{ item.label }}
              </el-dropdown-item>
            </el-dropdown-menu>
          </el-dropdown> -->
          <el-dropdown
            v-if="permissions.customerorder_doc_relate"
            @command="documentHandle"
@@ -65,32 +49,12 @@
              >
            </el-dropdown-menu>
          </el-dropdown>
          <!-- <el-button
            v-if="permissions.customerorder_push_otc"
            style="margin-left:10px;"
            type="primary"
            @click="pushOtc"
            >推送ERP</el-button
          > -->
          <!-- <el-button
            style="margin-left:10px;"
            type="primary"
            @click="importOutPutBatch"
            >导入产出批次</el-button
          > -->
          <el-button
            style="margin-left:10px;"
            type="primary"
            @click="()=>exportDialogVisible=true"
            >导出台账</el-button
          >
          <!-- <el-button
            v-if="permissions.plan_customerorder_return"
            style="margin-left:10px;"
            type="primary"
            @click="returnOrder"
            >订单退回</el-button
          > -->
        </template>
      </ttable>
      <!-- 弹窗, 日期选择 -->
@@ -474,7 +438,7 @@
            searchInfoType: 'text'
          },
          {
            minWidth: '120',
            minWidth: '100',
            prop: 'sourceId',
            label: '添加来源',
            isTag: true,
@@ -769,10 +733,10 @@
      ],
      sourceIdList: [{
        label: '同步',
        value: '0'
        value: "0"
      },{
        label: '手动',
        value: '1'
        value: "1"
      }],
      stockVisible: false,
      partName: null,
src/views/plan/operationtask/operationtask-form.vue
@@ -778,7 +778,6 @@
            //              this.dataForm.partName = this.routingList.partName
            //              this.dataForm.partId = this.routingList.partId
            // 制造订单form创建的,自动带出工序
            console.log(this.routingOptions);
            if (param.selectedRoutingOperationId && this.routingOptions) {
              const option = this.routingOptions.find(
                (e) => e.id === param.selectedRoutingOperationId
src/views/plan/productionschedul/index.vue
@@ -573,7 +573,7 @@
}
</script>
<style>
.el-tag--small{
.avue-crud__tip{
  display: none;
}
.basic-template-table .el-table__body .el-table__row td:first-child .cell {
src/views/product/workbench/operation-task-pane.vue
@@ -719,7 +719,6 @@
                      break
                    }
                  }
                  // console.log(this.operationTasks)
                  // 若当前工单在工单列表未被找到且当前工单状态为已完成或已取消时,则将当前工单重置为空并抛出事件,否则不管
                  if (isResetCurrOpertionTaskFlag) {
                    getOperationTaskById(taskId).then((res) => {
src/views/product/workbench/taskinfo-pane.vue
@@ -1675,7 +1675,6 @@
                      // 给弹出框产量列表productList赋值
                      this.productList = []
                      const product = {}
                      console.log('userInfo', this.userInfo)
                      const currStaff = this.personBoardList.find((item) => {
                        return item.staffId == this.userInfo.staffId
                      })
src/views/product/workbench/workReportCard.vue
@@ -2749,7 +2749,6 @@
    },
    createLodopPrintIze(data) {
      const currYearAndMonth = getYearAndMonth()
      console.log(data)
      const qr = {
        part_no: data.partNo,
        lot_batch_no: data.ifsBatchNo,
@@ -2890,7 +2889,6 @@
      this.LODOP.PRINT()
    },
    createLodopPrint(data) {
      console.log(data)
      const qr = {
        part_no: data.partNo,
        lot_batch_no: data.ifsBatchNo,
@@ -3075,7 +3073,6 @@
    },
    saveList() {
      const list = JSON.parse(JSON.stringify(this.productOutputList))
      console.log(`output->list`, list)
      const data = []
      list.forEach((el) => {
        if (el.isEdit) {
src/views/quality/finishedProductInspection/finishedProduct-form.vue
@@ -8,7 +8,7 @@
            <h2 v-else>编辑-产品检验单</h2>
        </div>
        <div class="btn-group header-right">
            <el-button @click="addTestProject" v-if="processInspectVo.id==null">生成检验项目</el-button>
            <el-button type="primary" @click="addTestProject" v-if="processInspectVo.id==null">生成检验项目</el-button>
        </div>
    </div>
    <div class="page-main">
src/views/quality/newReport/ReportForm.vue
@@ -1504,14 +1504,12 @@
                },
                data: requireData,
                success: function(response) {
                  console.log('response', response)
                  const resJson = JSON.parse(
                    response
                      .replace(/\r/g, '')
                      .replace(/\n/g, '')
                      .replace(/\s*/g, '')
                  )
                  console.log('resJson', resJson)
                  // TODO
                  if (resJson.message) {
                    const resData = resJson.data
src/views/quality/processInspect/processInspect-form.vue
@@ -8,13 +8,13 @@
                <h2 v-else>编辑-过程检验单</h2>
            </div>
            <div class="btn-group header-right">
                <el-button @click="addTestProject" v-if="processInspectVo.id == null">生成检验项目</el-button>
                <el-button type="primary" @click="addTestProject" v-if="processInspectVo.id == null">生成检验项目</el-button>
            </div>
        </div>
        <div class="page-main">
            <div class="finishedProduct-basic">
                <el-form :model="processInspectVo" ref="addInspectionform" class="l-mes" label-position="right"
                    label-width="120px" style="width: 100%" size="small">
                    label-width="120px" style="width: 100%" size="small" :rules="rules">
                    <div class="formwrapper">
                        <el-row>
                            <el-col :span="6">
@@ -24,7 +24,7 @@
                                </el-form-item>
                            </el-col>
                            <el-col :span="6">
                                <el-form-item label="订单号:">
                                <el-form-item label="订单号:" prop="orderNumber">
                                    <el-input @blur="selectInfoByOrderId" :disabled="processInspectVo.id != null"
                                        v-model="processInspectVo.orderNumber" placeholder="请输入订单号" autocomplete="off" />
                                </el-form-item>
@@ -113,7 +113,7 @@
                                            class="item" effect="dark" content="请先选择设备!" placement="top-start">
                                            <el-input :disabled="scope.row.eId == null"
                                                v-model="scope.row.empiricalValueAddss[index]"
                                                @blur="changeState(scope.row, index)" placeholder="请输入检测值"></el-input>
                                                @blur="changeState(scope.row)" placeholder="请输入检测值"></el-input>
                                            <span v-if="resultVal != null && processInspectVo.id != null"
                                                v-text="scope.row.empiricalValueAddss[index]"></span>
                                        </el-tooltip>
@@ -121,10 +121,7 @@
                                    <el-col v-else>
                                        <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null"
                                            class="item" effect="dark" content="请先选择设备!" placement="top-start">
                                            <!-- <el-input :disabled="scope.row.eId == null"
                                                v-model="scope.row.empiricalValueAddss[index]"
                                                @blur="changeState(scope.row, index)" placeholder="请输入检测值"></el-input> -->
                                            <el-select style="width: 100%;" @change="changeState(scope.row, index)" :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" placeholder="请选择">
                                            <el-select style="width: 100%;" @change="changeState(scope.row)" :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" placeholder="请选择">
                                                <el-option v-for="item in dataVal" :key="item.value" :label="item.label"
                                                    :value="item.value">
                                                </el-option>
@@ -151,31 +148,16 @@
                            <el-table-column 
                                label="检验描述" width="240" style="text-align: center;">
                                <template slot-scope="scope">
                                    <el-col v-if="scope.row.itype === '1'">
                                    <el-col>
                                        <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null"
                                            class="item" effect="dark" content="请先选择设备!" placement="top-start">
                                            <el-input :disabled="scope.row.eId == null"
                                                v-model="scope.row.inote"
                                                @blur="changeState(scope.row, inote)" placeholder="请输入检验描述"></el-input>
                                                @blur="changeState(scope.row)" placeholder="请输入检验描述"></el-input>
                                            <span v-if="resultVal != null && processInspectVo.id != null"
                                                v-text="scope.row.inote"></span>
                                        </el-tooltip>
                                    </el-col>
                                <el-col v-else>
                                        <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null"
                                            class="item" effect="dark" content="请先选择设备!" placement="top-start">
                                            <el-input :disabled="scope.row.eId == null"
                                                v-model="scope.row.inote"
                                                @blur="changeState(scope.row, inote)" placeholder="请输入检测值"></el-input>
                                            <!-- <el-select style="width: 100%;" @change="changeState(scope.row, inote)" :disabled="scope.row.eId == null" v-model="scope.row.inote" placeholder="请选择">
                                                <el-option v-for="item in dataVal" :key="item.value" :label="item.label"
                                                    :value="item.value">
                                                </el-option>
                                            </el-select>  -->
                                         <span v-if="resultVal != null && processInspectVo.id != null"
                                                v-text="scope.row.inote"></span>
                                        </el-tooltip>
                                    </el-col>
                                </template>
                            </el-table-column>
                            <el-table-column label="结论" fixed="right" min-width="100">
@@ -236,6 +218,9 @@
export default {
    data() {
        return {
            rules: {
                orderNumber: [{required:true,message:'订单号不能为空',trigger:'blur'}]
            },
            dataVal: [{
                label: '是',
                value: '是'
@@ -257,7 +242,7 @@
                proInsNo: null,
                material: null,
                materialCode: null,
                orderNumber: "ZTTIC20230001",
                orderNumber: null,
                quantity: null,
                specs: null,
                unit: null,
@@ -378,9 +363,9 @@
                                    arr = obj.inspectionValue.split(",")
                                }
                                obj.empiricalValueAddss = arr
                                if(obj.note){
                                        snote=obj.inote
                                    }
                                if(!obj.inote){
                                    obj.inote = null
                                }
                                if (arr.length > this.empiricalValueAdd) {
                                    this.empiricalValueAdd = arr.length
                                }
@@ -432,7 +417,7 @@
            this.processInspectVo.material = sample.material
            this.technologyList = sample.children
        },
        changeState(row, index) {
        changeState(row) {
            if (row.iid != null && row.iid != '') {
                let str = ""
                row.empiricalValueAddss.forEach(e => {
@@ -462,20 +447,23 @@
        },
        addTestProject() {
            let val = this.processInspectVo
            const _than = this
            addProcess(val).then(res => {
                let id = res.data.data
                if (id != null) {
                    _than.processInspectVo.id = id
                    queryById(id).then(response => {
                        let proList = response.data.data.children
                        proList.forEach(item => {
                            item.iid = Math.random();
                            if (item.children != undefined) {
                                item.children.forEach(obj => {
                                    obj.inote = null
                                    obj.empiricalValueAddss = []
                                })
                            }
                        })
                        this.inspectionItems = proList
                        _than.inspectionItems = proList
                    }).catch(error => {
                        console.log(error);
                    })
@@ -485,21 +473,25 @@
            })
        },
        selectInfoByOrderId() {
            chooseMater({
                orderNumber: this.processInspectVo.orderNumber
            }).then(res => {
                if (res.data.data != null) {
                    this.optionsSamplename = res.data.data.children
                } else {
                    this.$message({
                        message: '没有该订单号!',
                        type: 'warning'
                    });
                    this.optionsSamplename = []
                    this.processInspectVo.materialCode = null
                    this.processInspectVo.material = null
                    this.processInspectVo.specs = null
                    this.processInspectVo.unit = null
            this.$refs.addInspectionform.validate(valid=>{
                if(valid){
                    chooseMater({
                        orderNumber: this.processInspectVo.orderNumber
                    }).then(res => {
                        if (res.data.data != null) {
                            this.optionsSamplename = res.data.data.children
                        } else {
                            this.$message({
                                message: '没有该订单号!',
                                type: 'warning'
                            });
                            this.optionsSamplename = []
                            this.processInspectVo.materialCode = null
                            this.processInspectVo.material = null
                            this.processInspectVo.specs = null
                            this.processInspectVo.unit = null
                        }
                    })
                }
            })
        },
src/views/quality/rawMaterial/rawMaterial-form.vue
@@ -7,7 +7,7 @@
        <h2 v-else>编辑-原材料检验</h2>
      </div>
      <div class="btn-group header-right">
        <el-button @click="save()" v-if="this.dataForm.id==null">保存</el-button>
        <el-button @click="save()" type="primary" v-if="this.dataForm.id==null">保存</el-button>
      </div>
    </div>
    <div class="page-main">
src/views/quality/teststandard/standard-form.vue
@@ -262,6 +262,9 @@
              this.visible = false
              this.isSubmit = false
              this.$emit('refreshDataList')
            }).catch(error=>{
              console.error(error);
              this.isSubmit = false
            })
          } else {
            addTestStandard(this.dataForm).then((data) => {
@@ -269,6 +272,9 @@
              this.visible = false
              this.isSubmit = false
              this.$emit('refreshDataList')
            }).catch(error=>{
              console.error(error);
              this.isSubmit = false
            })
          }
        } else {
src/views/technology/completeproductstructure/completeproductstructure-form.vue
@@ -7,7 +7,7 @@
        <h2 v-if="!editable">查看-完整产品结构</h2>
      </div>
      <div class="btn-group header-right" v-if="editable">
        <el-button :disabled="isSubmit" v-thinclick="`dataFormSubmit`"
        <el-button type="primary" :disabled="isSubmit" v-thinclick="`dataFormSubmit`"
          >保存</el-button
        >
      </div>
src/views/technology/completeproductstructure/index.vue
@@ -341,8 +341,18 @@
    // 按产品结构生成BOM
    addByStructureHandle() {
      addByStructure().then((res) => {
        let result = Array.from(new Set(res.data.data))
        this.$message.success(result.join(','))
        // let result = Array.from(new Set(res.data.data))
        // this.$message.success(result.join(','))
        console.log(res.data.data);
        let mes="";
        res.data.data.forEach(item=>{
          mes+=item
        })
        this.$message({
          message: mes,
          type: 'success',
          dangerouslyUseHTMLString: true
        })
        this.getData()
      })
      // this.$message({
src/views/technology/document/document-form.vue
@@ -7,7 +7,7 @@
        <h2 v-if="!editable">查看-工艺文件</h2>
      </div>
      <div class="btn-group header-right" v-if="editable">
        <el-button @click="save()">保存</el-button>
        <el-button type="primary" @click="save()">保存</el-button>
      </div>
    </div>
    <div class="page-main">
src/views/technology/operation/operation-form.vue
@@ -6,7 +6,7 @@
        <h2>编辑-工序</h2>
      </div>
      <div class="btn-group header-right">
        <el-button :disabled="isSubmit" v-thinclick="`dataFormSubmit`"
        <el-button type="primary" :disabled="isSubmit" v-thinclick="`dataFormSubmit`"
          >保存</el-button
        >
      </div>
@@ -14,50 +14,38 @@
    <div class="page-main">
      <div class="operation-basic">
        <el-form
          :inline="true"
          style="width:100%"
          :model="dataForm"
          :rules="dataRule"
          ref="dataForm"
          label-width="100px"
          class="l-mes form-content"
        >
          class="l-mes">
          <el-row class="first-row">
            <el-col :span="24">
            <el-col :span="6">
              <el-form-item label="工序名称" prop="name">
                <el-input
                  style="width:100%"
                  v-model="dataForm.name"
                  placeholder="工序名称"
                ></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="工序编号" prop="operationNo">
                <el-input
                  style="width:100%"
                  v-model="dataForm.operationNo"
                  placeholder="工序编号"
                ></el-input>
              </el-form-item>
              <!-- <el-form-item label="零件族" prop="partFamilyId">
                <el-select
                  v-model="dataForm.partFamilyId"
                  filterable
                  placeholder="请选择"
                  style="width: 100%;"
                >
                  <el-option
                    v-for="(item, index) in this.partFamilyOptions"
                    :key="index"
                    :label="item.partFamilyName"
                    :value="item.id"
                  >
                  </el-option>
                </el-select>
              </el-form-item> -->
            </el-col>
            <el-col :span="6">
              <el-form-item label="工作中心" prop="workCenter">
                <el-select
                  v-model="dataForm.workCenter"
                  placeholder="工作中心"
                  style="width: 100%"
                  filterable
                >
                  filterable >
                  <el-option
                    v-for="item in workCenterOptions"
                    :key="item.id"
@@ -66,18 +54,8 @@
                  />
                </el-select>
              </el-form-item>
              <!-- <el-form-item label="机器运转因素" prop="machRunFactor">
                <el-input
                  v-model="dataForm.machRunFactor"
                  placeholder="机器运转因素"
                ></el-input>
              </el-form-item>
              <el-form-item label="机器设置时间" prop="machSetupTime">
                <el-input
                  v-model="dataForm.machSetupTime"
                  placeholder="机器设置时间"
                ></el-input>
              </el-form-item> -->
            </el-col>
            <el-col :span="6">
              <el-form-item label="人工类别" prop="laborClassNo">
                <el-select
                  v-model="dataForm.laborClassNo"
@@ -94,95 +72,30 @@
                  </el-option>
                </el-select>
              </el-form-item>
              <!-- <el-form-item label="劳力运转因素" prop="laborRunFactor">
                <el-input
                  v-model="dataForm.laborRunFactor"
                  placeholder="劳力运转因素"
                ></el-input>
              </el-form-item> -->
              <!-- <el-form-item label="劳力设置时间" prop="laborSetupTime">
                <el-input
                  v-model="dataForm.laborSetupTime"
                  placeholder="劳力设置时间"
                ></el-input>
              </el-form-item> -->
              <!-- <el-form-item label="因素单位" prop="runTimeCodeDb">
                <el-select
                  v-model="dataForm.runTimeCodeDb"
                  placeholder="因素单位"
                  style="width: 100%"
                >
                  <el-option
                    v-for="item in runTimeCodeDbOptions"
                    :key="item.id"
                    :label="item.label"
                    :value="item.value"
                  />
                </el-select>
              </el-form-item> -->
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="班组人员" prop="crewSize">
                <el-input
                  style="width:100%"
                  v-model="dataForm.crewSize"
                  placeholder="班组人员"
                ></el-input>
              </el-form-item>
              <!-- <el-form-item label="外部工序项目" prop="outsideOpItem">
                <el-select
                  v-model="dataForm.outsideOpItem"
                  placeholder="外部工序项目"
                  style="width: 170px"
                  clearable
                >
                  <el-option
                    v-for="item in outsideOpItemOptions"
                    :key="item.id"
                    :label='item.value + "-" + item.label '
                    :value="item.value"
                  />
                </el-select>
              </el-form-item> -->
            </el-col>
            <el-col :span="12">
              <el-form-item label="备注" prop="remark">
                <el-input
                  v-model="dataForm.remark"
                  placeholder="备注"
                  style="width: 280px"
                  style="width: 100%"
                ></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <!-- <el-row style="padding-top: 10px">
            <el-col :span="24">
              <el-form-item label="配置项">
                <el-checkbox-group
                  v-model="checkboxGroup"
                  @change="checkboxGroupChange()"
                >
                  <el-checkbox-button
                    label="productionCounting"
                    key="productionCounting"
                    >报工</el-checkbox-button
                  >
                  <el-checkbox-button label="daq" key="daq"
                    >采集</el-checkbox-button
                  >
                  <el-checkbox-button label="inspection" key="inspection"
                    >检验</el-checkbox-button
                  >
                  <el-checkbox-button
                    label="autoInspection"
                    key="autoInspection"
                    >自动报检</el-checkbox-button
                  >
                  <el-checkbox-button label="semiFinished" key="semiFinished"
                    >半成品</el-checkbox-button
                  >
                  <el-checkbox-button label="materialCost" key="materialCost"
                    >投料</el-checkbox-button
                  >
                </el-checkbox-group>
              </el-form-item>
            <el-col :span="6">
            </el-col>
          </el-row> -->
          </el-row>
        </el-form>
      </div>
@@ -1163,7 +1076,7 @@
<style>
.operation-basic {
  background-color: #fff;
  height: 200px;
  height: 130px;
  display: flex;
  padding: 20px 30px;
  border: 1px solid #ddd;
src/views/technology/routing/routing-form.vue
@@ -7,31 +7,35 @@
        <h2 v-if="!editable">查看-工艺路线</h2>
      </div>
      <div class="btn-group header-right" v-if="editable">
        <el-button :disabled="isSubmit" v-thinclick="`allSave`">保存</el-button>
        <el-button :disabled="isSubmit" type="primary" v-thinclick="`allSave`">保存</el-button>
      </div>
    </div>
    <div class="page-main">
      <div class="routing-basic">
        <el-form
          :inline="true"
          :model="dataForm"
          :rules="dataRule"
          ref="dataForm"
          label-width="100px"
          style="width: 100%"
          class="l-mes"
          :disabled="!editable"
        >
          <el-row>
            <el-col :span="24">
              <el-form-item prop="routingNo" label="工艺编号">
            <el-col :span="6">
              <el-form-item style="width:100%" prop="routingNo" label="工艺编号">
                <el-input
                  style="width:100%"
                  v-model="dataForm.routingNo"
                  placeholder="工艺编号"
                  disabled
                ></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item prop="partNo" label="零件号">
                <el-input
                  style="width:100%"
                  v-model="dataForm.partNo"
                  placeholder="零件号"
                  disabled
@@ -43,60 +47,31 @@
                  ></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item prop="partName" label="零件名称">
                <el-input
                  v-model="dataForm.partName"
                  placeholder="零件名称"
                  readonly
                  style="width: 300px"
                  style="width: 100%"
                ></el-input>
              </el-form-item>
              <el-form-item prop="description" label="描述">
                <el-input
                  v-model="dataForm.description"
                  placeholder="描述"
                  style="width: 280px"
                ></el-input>
              </el-form-item>
              <!-- <el-form-item prop="wireCore" label="线芯">
                <el-input
                  v-model="dataForm.wireCore"
                  placeholder="线芯"
                  style="width: 60px"
                ></el-input>
              </el-form-item> -->
            </el-col>
            <el-col :span="6">
              <el-form-item label="BOM" prop="bomId">
                <el-select :disabled="dataForm.id != null" v-model="dataForm.bomId" placeholder="" filterable>
                <el-select style="width:100%" :disabled="dataForm.id != null" v-model="dataForm.bomId" placeholder="" filterable>
                  <el-option
                    v-for="item in bomList"
                    :key="item.id"
                    :label="item.number"
                    :value="item.id"
                  />
                    :value="item.id" />
                </el-select>
              </el-form-item>
              <!-- <el-form-item prop="version" label="工艺版本">
                <el-input
                  v-model="dataForm.version"
                  placeholder="工艺版本"
                ></el-input>
              </el-form-item> -->
              <!-- <el-form-item label="工艺类型" prop="bomTypeDb">
                <el-select
                  v-model="dataForm.bomTypeDb"
                  placeholder="请选择工艺类型"
                  style="width:100%"
                  @change="bomTypeDbChange"
                >
                  <el-option
                    v-for="(item, index) in bomTypeDbOptions"
                    :label="item.label"
                    :value="item.value"
                    :key="index"
                  >
                  </el-option>
                </el-select>
              </el-form-item> -->
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="逐步采用日期" prop="phaseInDate">
                <el-date-picker
                  v-model="dataForm.phaseInDate"
@@ -106,6 +81,8 @@
                >
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="逐步淘汰日期" prop="phaseOutDate">
                <el-date-picker
                  v-model="dataForm.phaseOutDate"
@@ -115,27 +92,17 @@
                >
                </el-date-picker>
              </el-form-item>
              <!-- <el-form-item prop="alternativeNo" label="替代">
            </el-col>
            <el-col :span="6">
              <el-form-item prop="description" label="描述">
                <el-input
                  v-model="dataForm.alternativeNo"
                  placeholder="替代"
                  v-model="dataForm.description"
                  placeholder="描述"
                  style="width: 100%"
                ></el-input>
              </el-form-item> -->
              <!-- <el-form-item prop="alternativeDesc" label="替代描述">
                <el-input
                  v-model="dataForm.alternativeDesc"
                  placeholder="替代描述"
                ></el-input>
              </el-form-item> -->
              <!-- <el-form-item label="已同步至IFS" prop="ifsSync">
                <span
                  style="width: 146px;display: inline-block;font-size:12px;font-weight:bold;"
                  >{{ dataForm.ifsSync ? '是' : '否' }}</span
                >
              </el-form-item> -->
              <!-- <el-form-item label="主工艺" prop="master">
                <el-switch v-model="dataForm.master"> </el-switch>
              </el-form-item> -->
              </el-form-item>
            </el-col>
            <el-col :span="6">
            </el-col>
          </el-row>
        </el-form>
@@ -731,7 +698,7 @@
        wireCore: null
      },
      dataRule: {
        partName: [
        partNo: [
          { required: true, message: '零件不能为空', trigger: 'change' }
        ],
        bomTypeDb: [
src/views/technology/structure/index.vue
@@ -47,44 +47,12 @@
                multiple
              >
                <i class="el-icon-upload"></i>
                <div class="el-upload__text"><em>导入装备数据</em></div>
                <div class="el-upload__text"><em>导入产品结构</em></div>
                <div class="el-upload__tip" slot="tip">
                  只能上传xlsx/xls文件,且不超过10M<el-button
                    type="text"
                    style="font-size:12px;"
                    @click="downZhuangbeiDataTemplate"
                    >下载模板</el-button
                  >
                </div>
              </el-upload>
            </div>
            <div>
              <el-upload
                style="margin-left:8px;display: inline;"
                class="upload-demo"
                drag
                :headers="headers"
                :action="shepinUploadInfo.url"
                :beforeUpload="beforeAvatarUpload"
                :limit="1"
                :show-file-list="false"
                :file-list="shepinfileList"
                :data="shepinUploadInfo.uploadData"
                :on-success="shepinFileSuccessUploadScan"
                :on-error="handleError"
                accept=".xlsx,.xls,.csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
                :auto-upload="true"
                ref="shepinUploadScan"
                multiple
              >
                <i class="el-icon-upload"></i>
                <div class="el-upload__text"><em>导入射频数据</em></div>
                <div class="el-upload__tip" slot="tip">
                  只能上传xlsx/xls文件,且不超过10M<el-button
                    type="text"
                    style="font-size:12px;"
                    @click="downShepinDataTemplate"
                    >下载模板</el-button
                    ></el-button
                  >
                </div>
              </el-upload>
@@ -129,8 +97,8 @@
      customUpload: true,
      uploadInfo: {
        // 是否展示上传EXCEL以及对应的url
        isShow: false,
        url: '/mes/structure/uploadExt'
        isShow: true,
        url: '/mes/structure/uploadExcelPlus'
      },
      prelang: 'structure',
      options: {
@@ -326,7 +294,7 @@
      zhuangbeiUploadInfo: {
        // 是否展示上传EXCEL以及对应的url
        isShow: true,
        url: '/mes/structure/uploadExt'
        url: '/mes/structure/uploadExcelPlus'
      },
      zhuangbeifileList: [],
      shepinfileList: [],
@@ -487,8 +455,9 @@
        this.$message.warning(response.msg)
      } else {
        this.$message({
          message: '上传成功',
          type: 'success'
          message: response.data,
          type: 'success',
          dangerouslyUseHTMLString: true
        })
        this.getData()
      }
src/views/warehouse/changestock/index.vue
@@ -2,145 +2,90 @@
  <div class="mod-config">
    <basic-container>
      <div style="margin-left: 15px;">
        <el-row>
          <el-col :span="1">
            <div>
              <el-divider direction="vertical"></el-divider>
              <div
                style="float: left;height: 18px;font-size: 14px;line-height: 18px;font-weight: bold"
              >
                <span>零件</span>
              </div>
            </div>
          </el-col>
          <el-col :span="3">
            <div>
              <el-input
                class="change-stock-input"
                v-model="partNoStock"
                placeholder="零件"
                style="width: 100%"
                disabled
              >
                <el-button
                  slot="append"
                  icon="el-icon-search"
                  @click="openPartDialog()"
                ></el-button>
              </el-input>
            </div>
          </el-col>
          <el-col :span="1" :offset="1">
            <div>
              <el-divider direction="vertical"></el-divider>
              <div
                style="float: left;height: 18px;font-size: 14px;line-height: 18px;font-weight: bold"
              >
                <span>库位</span>
              </div>
            </div>
          </el-col>
          <el-col :span="3">
            <div>
              <el-input
                class="change-stock-input"
                v-model="locationNoStock"
                placeholder="库位号"
                @focus="openPicker(locationNoStock)"
                style="width: 100%"
                disabled
              >
                <i
                  slot="suffix"
                  v-show="locationNoStock"
                  @click="clearForm(locationNoStock)"
                  class="el-input__icon el-icon-error err-style"
                ></i>
                <el-button
                  slot="append"
                  icon="el-icon-search"
                  @click="openLocationDialog()"
                ></el-button>
              </el-input>
            </div>
          </el-col>
          <el-col :span="2">
            <div style="display:flex;justify-content:flex-end;">
              <div
                style="height: 18px;font-size: 14px;line-height: 18px;font-weight: bold;width:60px;"
              >
                <span>批次号</span>
              </div>
              <div>
                <el-divider direction="vertical"></el-divider>
              </div>
            </div>
          </el-col>
          <el-col :span="3">
            <div>
              <el-input
                class="change-stock-input"
                v-model="partBatchNoStock"
                placeholder="批次号"
                @focus="openPicker(partBatchNoStock)"
                style="width: 100%"
                disabled
              >
                <i
                  slot="suffix"
                  v-show="partBatchNoStock"
                  @click="clearStock(partBatchNoStock)"
                  class="el-input__icon el-icon-error err-style"
                ></i>
                <el-button
                  slot="append"
                  icon="el-icon-search"
                  @click="openStockDialog()"
                ></el-button>
              </el-input>
            </div>
          </el-col>
          <el-col :span="2">
            <div style="display:flex;justify-content:flex-end;">
              <div
                style="height: 18px;font-size: 14px;line-height: 18px;font-weight: bold;width:60px;"
              >
                <span>可用数量</span>
              </div>
              <div>
                <el-divider direction="vertical"></el-divider>
              </div>
            </div>
          </el-col>
          <el-col :span="3">
            <div>
              <el-select
                v-model="stockList.condition"
                placeholder="请选择"
                @change="conditionChange"
              >
                <el-option
                  v-for="item in conditionOptions"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
        <el-form class="l-mes" style="width:100%" :model="searchForm" label-width="80px" label-position="right">
          <el-row>
            <el-col :span="5">
              <el-form-item label="零件">
                <el-input
                  class="change-stock-input"
                  v-model="searchForm.partNoStock"
                  placeholder="零件"
                  style="width: 100%"
                  disabled
                >
                </el-option>
              </el-select>
            </div>
          </el-col>
          <el-col :span="3">
            <div style="text-align:center;">
              <el-button @click="clearConditions">清空</el-button
              ><el-button
                @click="queryByConditions"
                :disabled="isSubmit"
                type="primary"
                >查询</el-button
              >
            </div>
          </el-col>
        </el-row>
                  <el-button
                    slot="append"
                    icon="el-icon-search"
                    @click="openPartDialog()"
                  ></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="5">
              <el-form-item label="库位">
                <el-input
                  class="change-stock-input"
                  v-model="searchForm.locationNoStock"
                  placeholder="库位号"
                  style="width: 100%"
                  disabled
                >
                  <el-button
                    slot="append"
                    icon="el-icon-search"
                    @click="openLocationDialog()"
                  ></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="5">
              <el-form-item label="批次号">
                <el-input
                  class="change-stock-input"
                  v-model="searchForm.partBatchNoStock"
                  placeholder="批次号"
                  style="width: 100%"
                  disabled
                >
                  <el-button
                    slot="append"
                    icon="el-icon-search"
                    @click="openStockDialog()"
                  ></el-button>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="5">
              <el-form-item label="可用数量">
                <el-select
                  style="width:100%"
                  v-model="searchForm.condition"
                  placeholder="请选择"
                  @change="conditionChange"
                >
                  <el-option
                    v-for="item in conditionOptions"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="3" :offset="1">
              <div style="text-align:center;">
                <el-button @click="clearConditions">清空</el-button
                ><el-button
                  @click="queryByConditions"
                  :disabled="isSubmit"
                  type="primary"
                  >查询</el-button
                >
              </div>
            </el-col>
          </el-row>
        </el-form>
        <div style="margin-top: 15px;">
          <el-divider direction="vertical"></el-divider>
          <div
@@ -148,11 +93,11 @@
          >
            <span>实时库存</span>
          </div>
          <el-button type="primary" @click="addOrUpdateHandle()"
          <el-button size="mini" type="primary" @click="addOrUpdateHandle()"
            >新增</el-button
          >
          <el-button type="primary" @click="addStockSubmit()">接收</el-button>
          <el-button type="primary" @click="deleteStockSubmit()"
          <el-button size="mini" type="primary" @click="addStockSubmit()">接收</el-button>
          <el-button size="mini" type="primary" @click="deleteStockSubmit()"
            >发放</el-button
          >
@@ -307,6 +252,12 @@
export default {
  data() {
    return {
      searchForm: {
        partNoStock: null,
        locationNoStock: null,
        partBatchNoStock: null,
        condition: '>0',
      },
      stockList: {
        condition: '>0',
        locationNo: null,
@@ -322,9 +273,6 @@
      paramObj: {},
      dataRule: {},
      addOrUpdateVisible: false,
      partNoStock: null,
      locationNoStock: null,
      partBatchNoStock: null,
      showPart: false,
      showLocation: false,
      showStock: false,
@@ -355,7 +303,7 @@
    }
  },
  watch: {
    partNoStock: {
    'searchForm.partNoStock': {
      handler(newValue, oldValue) {
        if (newValue != null && newValue != undefined) {
          // this.getData()
@@ -364,7 +312,7 @@
      deep: true,
      immediate: true
    },
    locationNoStock: {
    'searchForm.locationNoStock': {
      handler(newValue, oldValue) {
        if (newValue != null && newValue != undefined) {
          // this.getData()
@@ -373,7 +321,7 @@
      deep: true,
      immediate: true
    },
    partBatchNoStock: {
    'searchForm.partBatchNoStock': {
      handler(newValue, oldValue) {
        if (newValue != null && newValue != undefined) {
          // this.getData()
@@ -386,16 +334,16 @@
  methods: {
    // 清空所有查询条件
    clearConditions() {
      this.partNoStock = null
      this.searchForm.partNoStock = null
      this.stockList.partNo = null
      this.paramObj.partId = null
      this.stockList.partName = null
      this.stockList.partId = null
      this.locationNoStock = null
      this.searchForm.locationNoStock = null
      this.stockList.locationNo = null
      this.stockList.locationId = null
      this.paramObj.locationId = null
      this.partBatchNoStock = null
      this.searchForm.partBatchNoStock = null
      this.stockList.partBatchNo = null
    },
    // 根据查询条件,搜索
@@ -403,15 +351,15 @@
      this.getData()
    },
    // 可用数量条件变更后,触发查询
    conditionChange() {
      // this.getData()
    conditionChange(val) {
      this.stockList.condition = val
    },
    // 零件
    openPartDialog() {
      this.showPart = true
    },
    getData() {
      if (this.partNoStock != null) {
      if (this.searchForm.partNoStock != null) {
        getStockCount(this.stockList).then((resp) => {
          const respData = resp.data.data
          if (respData && respData > 100) {
@@ -433,29 +381,10 @@
        this.$message.error('请先选择一个零件')
      }
    },
    openPicker() {
      document.activeElement.blur() // 主动触发onblur事件,是原生的js哟
    },
    clearForm() {
      this.locationNoStock = null
      this.stockList.locationNo = this.locationNoStock
      this.stockList.locationId = null
      this.paramObj.locationId = null
      // this.getData()
    },
    clearStock() {
      this.partBatchNoStock = null
      this.stockList.partBatchNo = this.partBatchNoStock
      this.locationNoStock = null
      this.stockList.locationNo = this.locationNoStock
      this.stockList.locationId = null
      this.paramObj.locationId = null
      // this.getData()
    },
    selectPart(param) {
      if (param) {
        this.partNoStock = param.partNo
        this.stockList.partNo = this.partNoStock
        this.searchForm.partNoStock = param.partNo
        this.stockList.partNo = this.searchForm.partNoStock
        this.paramObj.partId = param.id
        this.stockList.partName = param.partName
        this.stockList.partId = param.id
@@ -469,14 +398,15 @@
      // }
    },
    selectLocation(param) {
      console.log(param);
      if (param) {
        this.locationNoStock = param.locNo
        this.stockList.locationNo = this.locationNoStock
        this.searchForm.locationNoStock = param.locNo
        this.stockList.locationNo = this.searchForm.locationNoStock
        this.stockList.locationId = param.id
        this.paramObj.locationId = param.id
      } else {
        this.locationNoStock = null
        this.stockList.locationNo = this.locationNoStock
        this.searchForm.locationNoStock = null
        this.stockList.locationNo = this.searchForm.locationNoStock
        this.stockList.locationId = null
        this.paramObj.locationId = null
        // this.getData()
@@ -492,25 +422,25 @@
    dataFormSubmit() {},
    selectStock(param) {
      if (param) {
        this.partBatchNoStock = param.partBatchNo
        this.stockList.partBatchNo = this.partBatchNoStock
        this.searchForm.partBatchNoStock = param.partBatchNo
        this.stockList.partBatchNo = this.searchForm.partBatchNoStock
        this.stockList.locationNo = param.locationNo
        this.locationNoStock = param.locationNo
        this.searchForm.locationNoStock = param.locationNo
        this.stockList.locationId = param.locationId
        this.paramObj.locationId = param.locationId
        this.partNoStock = param.partNo
        this.stockList.partNo = this.partNoStock
        this.searchForm.partNoStock = param.partNo
        this.stockList.partNo = this.searchForm.partNoStock
        this.paramObj.partId = param.partId
        this.stockList.partName = param.partName
        this.stockList.partId = param.partId
      } else {
        this.partBatchNoStock = null
        this.stockList.partBatchNo = this.partBatchNoStock
        this.locationNoStock = null
        this.stockList.locationNo = this.locationNoStock
        this.searchForm.partBatchNoStock = null
        this.stockList.partBatchNo = this.searchForm.partBatchNoStock
        this.searchForm.locationNoStock = null
        this.stockList.locationNo = this.searchForm.locationNoStock
        this.stockList.locationId = null
        this.paramObj.locationId = null
        this.partNoStock = null
        this.searchForm.partNoStock = null
        this.stockList.partNo = null
        this.paramObj.partId = null
        this.stockList.partName = null