懒羊羊
2023-12-14 b800e7fef919980f7e39c31d42a74e80008cd25b
工单
已修改1个文件
339 ■■■■ 文件已修改
jcdm-ui/src/views/main/om/productionOrde/index.vue 339 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-ui/src/views/main/om/productionOrde/index.vue
@@ -142,13 +142,71 @@
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
      <el-table border v-loading="loading" :data="productionOrdeList" @selection-change="handleSelectionChange">
      <el-table border @row-click="handleRowClick" v-loading="loading" :data="productionOrdeList" @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55" align="center" />
        <el-table-column width="500" label="操作" align="center" class-name="small-padding fixed-width">
        <el-table-column label="生产工单号" width="160" align="center">
          <template slot-scope="scope">
            <router-link :to="{path: '/main/workReport-data/index/', query: {workOrderNo: scope.row.workOrderNo} }" class="link-type">
              <span>{{ scope.row.workOrderNo }}</span>
            </router-link>
          </template>
        </el-table-column>
        <el-table-column label="订单编号" width="140" align="center" prop="salesOrderCode">
        </el-table-column>
        <el-table-column label="产品编号" width="140" align="center" prop="productCode">
        </el-table-column>
        <el-table-column label="产品名称" width="160" align="center" prop="productName">
        </el-table-column>
        <el-table-column label="工单状态" align="center" prop="orderStatus">
          <template slot-scope="scope">
            <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/>
          </template>
        </el-table-column>
        <el-table-column label="车间编号" align="center" prop="workshopCode">
        </el-table-column>
        <el-table-column label="产线编号" align="center" prop="lineCode">
        </el-table-column>
        <el-table-column label="工艺流程" width="140" align="center" prop="routeCode">
        </el-table-column>
        <el-table-column label="产品BOM" width="140" align="center" prop="bomCode">
        </el-table-column>
        <el-table-column label="工艺配方" width="140" align="center" prop="recipeCode">
        </el-table-column>
        <el-table-column label="计划数量" align="center" prop="planQty">
        </el-table-column>
        <el-table-column label="实际数量" align="center" prop="actualQty">
        </el-table-column>
        <el-table-column label="实际上线数量" width="100" align="center" prop="actualOnlineQty">
        </el-table-column>
        <el-table-column label="需求日期" align="center" prop="demandDate" width="180">
        </el-table-column>
        <el-table-column label="计划开始时间" width="160" align="center" prop="planStartTime">
        </el-table-column>
        <el-table-column label="计划结束时间" width="160" align="center" prop="planEndTime">
        </el-table-column>
        <el-table-column label="实际开始时间" width="160" align="center" prop="actualStartTime">
        </el-table-column>
        <el-table-column label="实际结束时间" width="160" align="center" prop="actualEndTime">
        </el-table-column>
        <el-table-column width="160" label="创建时间" align="center" prop="createTime">
        </el-table-column>
        <el-table-column width="160" label="更新时间" align="center" prop="updateTime">
        </el-table-column>
        <el-table-column label="创建人" width="80" align="center" prop="createUser">
        </el-table-column>
        <el-table-column label="修改人" width="80" align="center" prop="updateUser">
        </el-table-column>
        <el-table-column label="备注" width="100" align="center" prop="remarks">
        </el-table-column>
        <el-table-column label="流水号" align="center" prop="streamNumber">
        </el-table-column>
        <el-table-column label="客户" width="80" align="center" prop="custom">
        </el-table-column>
        <el-table-column fixed="right" width="500" label="操作" align="center" class-name="small-padding fixed-width">
          <template slot-scope="scope">
            <!--  工单状态(1创建、2已发布、3生产中、4已冻结、5已完工、6已关闭) -->
            <el-button type="success" style="width: 72px" plain @click="handleCommand('3',scope.row.id)" v-if="scope.row.orderStatus === '1'" size="mini">开始</el-button>
            <el-button style="width: 72px" plain @click="handleCommand('4',scope.row.id)" v-if="scope.row.orderStatus === '2'|| scope.row.orderStatus === '3'" type="warning" size="mini">冻结</el-button>
            <el-button type="success"  style="width: 72px" plain @click="handleCommand('3',scope.row.id)" v-if="scope.row.orderStatus === '1'" size="mini">开始</el-button>
            <el-button style="width: 72px"  plain @click="handleCommand('4',scope.row.id)" v-if="scope.row.orderStatus === '2'|| scope.row.orderStatus === '3'" type="warning" size="mini">冻结</el-button>
            <el-button style="width: 72px" plain @click="handleCommand('3',scope.row.id)" v-if="scope.row.orderStatus === '4'" type="warning" size="mini">解冻</el-button>
            <el-button style="width: 72px" plain @click="handleCommand('6',scope.row.id)" v-if="scope.row.orderStatus === '1'" type="danger" size="mini">关闭</el-button>
            <el-button style="width: 72px" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">启用</el-button>
@@ -173,74 +231,35 @@
              @click="handleDelete(scope.row)"
              v-hasPermi="['om:productionOrde:remove']"
            >删除</el-button>
            <!--  工单状态(1创建、2已发布、3生产中、4已冻结、5已完工、6已关闭) -->
<!--            <el-button type="success" :disabled="isDisabled1" style="width: 72px" plain @click="handleCommandStart('3',scope.row.id)" size="mini">开始</el-button>-->
<!--            <el-button style="width: 72px" :disabled="isDisabled2" plain @click="handleCommandDonejie('4',scope.row.id)" v-if="scope.row.orderStatus === '1'|| scope.row.orderStatus === '3'|| scope.row.orderStatus === '5'" type="warning" size="mini">冻结</el-button>-->
<!--            <el-button style="width: 72px" :disabled="isDisabled3" plain @click="handleCommandJieDong('3',scope.row.id)" v-if="scope.row.orderStatus === '4'" type="warning" size="mini">解冻</el-button>-->
<!--            <el-button style="width: 72px" :disabled="isDisabled4" plain @click="handleCommand('6',scope.row.id)" v-if="scope.row.orderStatus === '3' || scope.row.orderStatus === '1'|| scope.row.orderStatus === '4'|| scope.row.orderStatus === '5'" type="danger" size="mini">关闭</el-button>-->
<!--            <el-button style="width: 72px" :disabled="isDisabled5" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">启用</el-button>-->
<!--            <el-button-->
<!--              size="mini"-->
<!--              type="success"-->
<!--              :disabled="isDisabled8"-->
<!--              style="width: 72px"-->
<!--              v-if="scope.row.orderStatus === '3' || scope.row.orderStatus === '1'|| scope.row.orderStatus === '4'|| scope.row.orderStatus === '5'"-->
<!--              icon="el-icon-edit"-->
<!--              @click="handleUpdate(scope.row)"-->
<!--              v-hasPermi="['om:productionOrde:edit']"-->
<!--            >修改</el-button>-->
<!--            <el-button-->
<!--              size="mini"-->
<!--              type="warning"-->
<!--              :disabled="isDisabled9"-->
<!--              style="width: 72px"-->
<!--              v-if="scope.row.orderStatus === '3'|| scope.row.orderStatus === '1'|| scope.row.orderStatus === '4'|| scope.row.orderStatus === '5'"-->
<!--              icon="el-icon-delete"-->
<!--              @click="handleDelete(scope.row)"-->
<!--              v-hasPermi="['om:productionOrde:remove']"-->
<!--            >删除</el-button>-->
<!--            <el-button style="width: 72px" :disabled="isDisabled6" v-if="scope.row.orderStatus === '1'|| scope.row.orderStatus === '3'|| scope.row.orderStatus === '4'" @click="handleCommandFinish('5',scope.row.id)"  type="success" size="mini">完成</el-button>-->
<!--            <el-button style="width: 72px" :disabled="isDisabled7" v-if="scope.row.orderStatus === '5'" type="success" size="mini">已完工</el-button>-->
          </template>
        </el-table-column>
        <el-table-column label="工单状态" align="center" prop="orderStatus">
  <!--        <template slot-scope="scope">-->
  <!--          <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/>-->
  <!--        </template>-->
          <template slot-scope="scope">
            <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/>
          </template>
        </el-table-column>
        <el-table-column label="生产工单号" width="130" align="center">
          <template slot-scope="scope">
            <router-link :to="{path: '/main/workReport-data/index/', query: {workOrderNo: scope.row.workOrderNo} }" class="link-type">
              <span>{{ scope.row.workOrderNo }}</span>
            </router-link>
          </template>
        </el-table-column>
        <el-table-column label="订单编号" align="center" prop="salesOrderCode">
        </el-table-column>
        <el-table-column label="产品编号" align="center" prop="productCode">
        </el-table-column>
        <el-table-column label="产品名称" align="center" prop="productName">
        </el-table-column>
        <el-table-column label="车间编号" align="center" prop="workshopCode">
        </el-table-column>
        <el-table-column label="产线编号" align="center" prop="lineCode">
        </el-table-column>
        <el-table-column label="工艺流程" align="center" prop="routeCode">
        </el-table-column>
        <el-table-column label="产品BOM" align="center" prop="bomCode">
        </el-table-column>
        <el-table-column label="工艺配方" align="center" prop="recipeCode">
        </el-table-column>
        <el-table-column label="计划数量" align="center" prop="planQty">
        </el-table-column>
        <el-table-column label="实际数量" align="center" prop="actualQty">
        </el-table-column>
<!--        <el-table-column label="不良数量" align="center" prop="badQty">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="报废数量" align="center" prop="scrapQty">-->
<!--        </el-table-column>-->
<!--        <el-table-column label="返修数量" align="center" prop="repairQty">-->
<!--        </el-table-column>-->
        <el-table-column label="实际上线数量" align="center" prop="actualOnlineQty">
        </el-table-column>
        <el-table-column label="需求日期" align="center" prop="demandDate" width="180">
        </el-table-column>
        <el-table-column label="计划开始时间" align="center" prop="planStartTime">
        </el-table-column>
        <el-table-column label="计划结束时间" align="center" prop="planEndTime">
        </el-table-column>
        <el-table-column label="实际开始时间" align="center" prop="actualStartTime">
        </el-table-column>
        <el-table-column label="实际结束时间" align="center" prop="actualEndTime">
        </el-table-column>
        <el-table-column :show-overflow-tooltip='true' label="创建时间" align="center" prop="createTime">
        </el-table-column>
        <el-table-column :show-overflow-tooltip='true' label="更新时间" align="center" prop="updateTime">
        </el-table-column>
        <el-table-column label="创建人" align="center" prop="createUser">
        </el-table-column>
        <el-table-column label="修改人" align="center" prop="updateUser">
        </el-table-column>
        <el-table-column label="备注" align="center" prop="remarks">
        </el-table-column>
        <el-table-column label="流水号" align="center" prop="streamNumber">
        </el-table-column>
        <el-table-column label="客户" align="center" prop="custom">
        </el-table-column>
      </el-table>
    </el-card>
@@ -256,6 +275,10 @@
    <!-- 添加或修改生产工单对话框 -->
    <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
       <span slot="title">
        <i class="el-icon-s-order"></i>
        {{titleName}}
      </span>
      <el-form ref="form" inline :model="form" :rules="rules" label-width="80px">
        <el-form-item label="工单号" prop="workOrderNo">
          <el-input v-model="form.workOrderNo" placeholder="请输入生产工单号" />
@@ -263,9 +286,6 @@
        <el-form-item label="订单编号" prop="salesOrderCode">
          <el-input v-model="form.salesOrderCode" placeholder="请输入订单编号" />
        </el-form-item>
<!--        <el-form-item label="产品编号" prop="productCode">-->
<!--          <el-input v-model="form.productCode" placeholder="请输入产品编号" />-->
<!--        </el-form-item>-->
        <el-form-item label="产品编号" prop="productCode">
          <el-input v-model="form.productCode" placeholder="请选择产品" >
            <el-button slot="append" @click="handleSelectProduct" icon="el-icon-search"></el-button>
@@ -276,16 +296,30 @@
          <el-input v-model="form.productName" disabled placeholder="请输入产品名称" />
        </el-form-item>
        <el-form-item label="车间编号" prop="workshopCode">
          <el-input v-model="form.workshopCode" placeholder="请输入车间编号" />
          <el-select style="width: 93%" @change="handleSelectChange(form.processesCode)" v-model="form.processesCode" placeholder="请选择车间编号">
            <el-option
              v-for="item in options"
              :key="item.workshopCode"
              :label="item.workshopName"
              :value="item.workshopCode">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="产线编号" prop="lineCode">
          <el-input v-model="form.lineCode" placeholder="请输入产线编号" />
        <el-form-item style="margin-left: -15px" label="产线编号" prop="lineCode">
          <el-select style="width: 93%" v-model="form.lineCode" placeholder="请选择产线编号">
            <el-option
              v-for="item in lineOptions"
              :key="item.lineCode"
              :label="item.lineName"
              :value="item.lineCode">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="工艺流程" disabled prop="routeCode">
          <el-input v-model="form.routeCode" placeholder="请输入工艺流程" />
        <el-form-item label="工艺流程" prop="routeCode">
          <el-input v-model="form.routeCode" disabled placeholder="请输入工艺流程" />
        </el-form-item>
        <el-form-item label="产品BOM" disabled prop="bomCode">
          <el-input v-model="form.bomCode" placeholder="请输入产品BOM" />
        <el-form-item label="产品BOM" prop="bomCode">
          <el-input v-model="form.bomCode" disabled placeholder="请输入产品BOM" />
        </el-form-item>
        <el-form-item label="工艺配方" prop="recipeCode">
          <el-input v-model="form.recipeCode" placeholder="请输入工艺配方" />
@@ -293,29 +327,50 @@
        <el-form-item label="计划数量" prop="planQty">
          <el-input v-model="form.planQty" placeholder="请输入计划数量" />
        </el-form-item>
        <el-form-item label="实际数量" prop="actualQty">
          <el-input v-model="form.actualQty" placeholder="请输入实际数量" />
        </el-form-item>
<!--        <el-form-item label="实际数量" prop="actualQty">-->
<!--          <el-input v-model="form.actualQty" placeholder="请输入实际数量" />-->
<!--        </el-form-item>-->
        <el-form-item label="需求日期" prop="demandDate">
          <el-date-picker clearable
          <el-date-picker style="width: 88%" clearable
            v-model="form.demandDate"
            type="date"
            value-format="yyyy-MM-dd"
            placeholder="请选择需求日期">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="顺序号" prop="serialNumber">
          <el-input v-model="form.serialNumber" placeholder="请输入顺序号" />
        </el-form-item>
        <el-form-item label="备注" prop="remarks">
<!--        <el-form-item style="margin-left: -30px" label="流水号" prop="streamNumber">-->
<!--          <el-input v-model="form.streamNumber" placeholder="请输入流水号" />-->
<!--        </el-form-item>-->
        <el-form-item style="margin-left: -30px" label="备注" prop="remarks">
          <el-input v-model="form.remarks" placeholder="请输入备注" />
        </el-form-item>
        <el-form-item label="流水号" prop="streamNumber">
          <el-input v-model="form.streamNumber" placeholder="请输入流水号" />
        </el-form-item>
        <el-form-item label="客户" prop="custom">
          <el-input v-model="form.custom" placeholder="请输入客户" />
        </el-form-item>
<!--        <el-form-item label="客户" prop="custom">-->
<!--          <el-input v-model="form.custom" placeholder="请输入客户" />-->
<!--        </el-form-item>-->
        <el-row>
          <el-col :span="12">
            <el-form-item style="margin-left: 10px" label-width="120" label="计划开始时间" prop="planStartTime">
              <el-date-picker clearable
                              v-model="form.planStartTime"
                              type="date"
                              value-format="yyyy-MM-dd"
                              placeholder="请选择计划开始时间">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item style="margin-left: 76px" label-width="120" label="计划结束时间" prop="planEndTime">
              <el-date-picker clearable
                              v-model="form.planEndTime"
                              type="date"
                              value-format="yyyy-MM-dd"
                              placeholder="请选择计划结束时间">
              </el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -327,6 +382,8 @@
</template>
<script>
import { listLineInfo } from "@/api/main/bs/lineInfo/lineInfo";
import { listWorkshop } from "@/api/main/bs/workshop/workshop";
import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom";
import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute";
import ItemSelect  from "@/components/itemSelect/single.vue";
@@ -340,6 +397,20 @@
  },
  data() {
    return {
      titleName: '',
      isDisabled1: false,
      isDisabled2: false,
      isDisabled3: false,
      isDisabled4: false,
      isDisabled5: false,
      isDisabled6: false,
      isDisabled7: false,
      isDisabled8: false,
      isDisabled9: false,
      options: [],
      lineOptions: [],
      showFlag:false,
      advancedShowSearch: false,
      workOrder: {
@@ -398,8 +469,62 @@
  },
  created() {
    this.getList();
    this.initWorkshop();
  },
  methods: {
    //完成
    handleCommandFinish(status,id){
      this.updateOrderState(status,id)
      this.isDisabled1 = true;
      this.isDisabled4 = true;
      this.isDisabled8 = true;
      this.isDisabled9 = true;
      this.isDisabled6 = true;
      this.isDisabled7 = true;
      this.isDisabled2 = true;
    },
    //解冻
    handleCommandJieDong(status,id){
      this.updateOrderState(status,id)
      this.isDisabled1 = true;
      this.isDisabled4 = true;
      this.isDisabled8 = true;
      this.isDisabled9 = true;
      this.isDisabled6 = false;
      this.isDisabled2 = false;
    },
    //冻结
    handleCommandDonejie(status,id){
      this.updateOrderState(status,id)
      this.isDisabled1 = true;
      this.isDisabled4 = true;
      this.isDisabled8 = true;
      this.isDisabled9 = true;
      this.isDisabled6 = true;
      this.isDisabled2 = true;
    },
    //开始
    handleCommandStart(status,id){
      this.updateOrderState(status,id)
      this.isDisabled1 = true;
      this.isDisabled4 = true;
      this.isDisabled8 = true;
      this.isDisabled9 = true;
      this.isDisabled2 = false;
    },
    initWorkshop(){
      listWorkshop(this.queryParams).then(response => {
        this.options = response.rows;
      });
    },
    // 在这里编写处理选中事件的逻辑
    handleSelectChange(selectedOption) {
      this.queryParams.workshopCode = selectedOption;
      listLineInfo(this.queryParams).then(response => {
        this.lineOptions = response.rows;
      });
    },
    //物料选择弹出框
    onItemSelected(obj){
      if(obj !== undefined && obj !== null){
@@ -408,12 +533,11 @@
        this.form.productName = obj.materialName;
        this.queryParams.productCode = productCode
        listTechnologyRoute(this.queryParams).then(response => {
          console.log(response.data)
          this.form.routeCode = response.rows[0].routeCode;
        });
        listProductBom(this.queryParams).then(response => {
          console.log(response.row)
          this.form.bomCode = response.rows[0].bomCode;
        });
      }
    },
    handleSelectProduct(){
@@ -423,6 +547,15 @@
      this.advancedShowSearch = (this.advancedShowSearch) ? this.advancedShowSearch = false : this.advancedShowSearch = true;
    },
    handleCommand(status,id) {
      this.updateStatusParameter.id = id;
      this.updateStatusParameter.orderStatus = status;
      updateProductionOrde(this.updateStatusParameter).then(response => {
        this.$modal.msgSuccess("修改成功");
        this.open = false;
        this.getList();
      });
    },
    updateOrderState(status,id){
      this.updateStatusParameter.id = id;
      this.updateStatusParameter.orderStatus = status;
      updateProductionOrde(this.updateStatusParameter).then(response => {
@@ -509,7 +642,7 @@
    handleAdd() {
      this.reset();
      this.open = true;
      this.title = "添加生产工单";
      this.titleName = "添加生产工单";
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
@@ -518,7 +651,7 @@
      getProductionOrde(id).then(response => {
        this.form = response.data;
        this.open = true;
        this.title = "修改生产工单";
        this.titleName = "修改生产工单";
      });
    },
    /** 提交按钮 */
@@ -560,3 +693,9 @@
  }
};
</script>
<style>
.el-dialog__header{
  /*background-color: #f8f8f8;*/
  background-color: #f8f8f9;
}
</style>