loulijun2021
2024-05-06 46528c3843ce67038ddb2e00dd3d3998c206a69e
src/views/workOrder/produceOrderList.vue
@@ -12,15 +12,10 @@
        <div style="display: flex">
          <el-button
            v-waves
            icon="el-icon-switch-button"
            @click="orderClose"
          >关闭订单
          </el-button>
          <el-button
            v-waves
            icon="el-icon-delete"
            @click="orderDel"
          >删除订单
            type="primary"
            icon="el-icon-bottom"
            @click="batchHandle"
          >批量下达
          </el-button>
        </div>
@@ -35,6 +30,22 @@
          style="display: flex;"
        >
          <div class="elForm">
            <el-form-item label="车间名称" style=" display: flex;">
              <el-select
                v-model="form.wkshopcode"
                filterable
                :popper-append-to-body="false"
                style="width: 200px"
                placeholder="请选择"
              >
                <el-option
                  v-for="item in wkshopcodeArr"
                  :key="item.torg_code"
                  :label="item.torg_name"
                  :value="item.torg_code"
                />
              </el-select>
            </el-form-item>
            <el-form-item label="订单状态" style=" display: flex;">
              <el-select
                v-model="form.erporderstus"
@@ -59,7 +70,7 @@
              <el-input v-model="form.saleordercode" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <el-form-item label="产品编码" style=" display: flex;">
            <el-form-item v-show="isExpandForm" label="产品编码" style=" display: flex;">
              <el-input v-model="form.partcode" style="width: 200px" placeholder="请输入" />
            </el-form-item>
@@ -69,58 +80,43 @@
            <el-form-item v-show="isExpandForm" label="产品规格" style=" display: flex;">
              <el-input v-model="form.partspec" style="width: 200px" placeholder="请输入" />
            </el-form-item>
            <!--            <el-form-item v-show="isExpandForm" label="创建人员" style=" display: flex;">-->
            <!--              <el-input v-model="form.creatuser" style="width: 200px" placeholder="请输入" />-->
            <!--            </el-form-item>-->
            <el-form-item
              v-show="isExpandForm"
              label="预计开工时间"
              label-width="100px"
              style="display: flex;font-size: 14px;align-items: center"
            >
              <el-date-picker
                v-model="form.paystartdate"
                type="daterange"
                range-separator="~"
                class="timeMini"
                size="mini"
                style="width: 200px;display: flex;line-height: 34px;height: 34px;"
                :clearable="false"
                start-placeholder="开始日期"
                end-placeholder="结束日期"
              />
              <!--              font-size: 14px!important;-->
              <!--              :picker-options="expireTimeOption"-->
            </el-form-item>
            <el-form-item
              v-show="isExpandForm"
              label="预计完工时间"
              label-width="100px"
              style=" display: flex;font-size: 14px;align-items: center"
            >
              <el-date-picker
                v-model="form.payenddate"
                type="daterange"
                :clearable="false"
                class="timeMini"
                range-separator="~"
                start-placeholder="开始日期"
                style="width: 200px;display: flex;line-height: 34px ;height: 34px ;"
                end-placeholder="结束日期"
                size="mini"
              />
              <!--              :picker-options="expireTimeOption"-->
              <!--              <el-date-picker-->
              <!--                v-model="form.createdate"-->
              <!--                type="date"-->
              <!--                size="mini"-->
              <!--                :clearable="false"-->
              <!--                style="width: 200px;"-->
              <!--                format="yyyy-MM-dd"-->
              <!--                placeholder="选择日期"-->
              <!--              />-->
            </el-form-item>
            <!--            <el-form-item-->
            <!--              v-show="isExpandForm"-->
            <!--              label="预计开工时间"-->
            <!--              label-width="100px"-->
            <!--              style="display: flex;font-size: 14px;align-items: center"-->
            <!--            >-->
            <!--              <el-date-picker-->
            <!--                v-model="form.paystartdate"-->
            <!--                type="daterange"-->
            <!--                range-separator="~"-->
            <!--                class="timeMini"-->
            <!--                size="mini"-->
            <!--                style="width: 200px;display: flex;line-height: 34px;height: 34px;"-->
            <!--                :clearable="false"-->
            <!--                start-placeholder="开始日期"-->
            <!--                end-placeholder="结束日期"-->
            <!--              />-->
            <!--            </el-form-item>-->
            <!--            <el-form-item-->
            <!--              v-show="isExpandForm"-->
            <!--              label="预计完工时间"-->
            <!--              label-width="100px"-->
            <!--              style=" display: flex;font-size: 14px;align-items: center"-->
            <!--            >-->
            <!--              <el-date-picker-->
            <!--                v-model="form.payenddate"-->
            <!--                type="daterange"-->
            <!--                :clearable="false"-->
            <!--                class="timeMini"-->
            <!--                range-separator="~"-->
            <!--                start-placeholder="开始日期"-->
            <!--                style="width: 200px;display: flex;line-height: 34px ;height: 34px ;"-->
            <!--                end-placeholder="结束日期"-->
            <!--                size="mini"-->
            <!--              />-->
            <!--            </el-form-item>-->
          </div>
          <div
@@ -165,25 +161,27 @@
          :header-cell-style="this.$headerCellStyle"
          :cell-style="this.$cellStyle"
          @sort-change="sortChange"
          @row-click="rowClick"
          @selection-change="handleSelectionChange"
        >
          <!--          <el-table-column-->
          <!--            type="selection"-->
          <!--            width="50"-->
          <!--          />-->
          <!--          @row-click="rowClick"-->
          <el-table-column
            type="selection"
            width="50"
            fixed
          >
            <template slot-scope="{row}">
              <el-radio
                v-model="radioSelectedId"
                :label="row.id"
                style="color: transparent;padding-left: 10px;"
              />
              <!--              @change.native="getCurrentRow(row.id)"-->
            </template>
          </el-table-column>
            :selectable="selected"
          />
          <!--          <el-table-column-->
          <!--            width="50"-->
          <!--            fixed-->
          <!--          >-->
          <!--            <template slot-scope="{row}">-->
          <!--              <el-radio-->
          <!--                v-model="radioSelectedId"-->
          <!--                :label="row.id"-->
          <!--                style="color: transparent;padding-left: 10px;"-->
          <!--              />-->
          <!--              &lt;!&ndash;              @change.native="getCurrentRow(row.id)"&ndash;&gt;-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <el-table-column
            prop="rowNum"
            width="50"
@@ -234,7 +232,7 @@
            prop="partname"
            label="产品名称"
            sortable="custom"
            min-width="150"
            min-width="200"
            show-tooltip-when-overflow
          />
          <el-table-column
@@ -264,6 +262,18 @@
            sortable="custom"
          />
          <el-table-column
            prop="clerkuser"
            label="销售业务员"
            show-tooltip-when-overflow
            width="150"
            sortable="custom"
          >
            <template slot-scope="{row}">
              <div v-if="row.clerkuser">{{ row.clerkuser }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="wkshp_name"
            label="生产车间"
            show-tooltip-when-overflow
@@ -275,30 +285,30 @@
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="planstartdate"
            show-tooltip-when-overflow
            label="预计开工时间"
            sortable="custom"
            width="130"
          >
            <template slot-scope="{row}">
              <div v-if="row.planstartdate">{{ row.planstartdate.substring(0, 11) }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="planenddate"
            label="预计完工时间"
            show-tooltip-when-overflow
            sortable="custom"
            width="130"
          >
            <template slot-scope="{row}">
              <div v-if="row.planenddate">{{ row.planenddate.substring(0, 11) }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <!--          <el-table-column-->
          <!--            prop="planstartdate"-->
          <!--            show-tooltip-when-overflow-->
          <!--            label="预计开工时间"-->
          <!--            sortable="custom"-->
          <!--            width="130"-->
          <!--          >-->
          <!--            <template slot-scope="{row}">-->
          <!--              <div v-if="row.planstartdate">{{ row.planstartdate.substring(0, 11) }}</div>-->
          <!--              <div v-else>/</div>-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <!--          <el-table-column-->
          <!--            prop="planenddate"-->
          <!--            label="预计完工时间"-->
          <!--            show-tooltip-when-overflow-->
          <!--            sortable="custom"-->
          <!--            width="130"-->
          <!--          >-->
          <!--            <template slot-scope="{row}">-->
          <!--              <div v-if="row.planenddate">{{ row.planenddate.substring(0, 11) }}</div>-->
          <!--              <div v-else>/</div>-->
          <!--            </template>-->
          <!--          </el-table-column>-->
          <el-table-column
            prop="saleOrderDeliveryDate"
            label="预计交付日期"
@@ -338,7 +348,7 @@
          <el-table-column
            label="操作"
            fixed="right"
            width="80"
            width="120"
          >
            <template slot-scope="{row}">
              <div class="operationClass">
@@ -349,6 +359,23 @@
                    :style="{color:$store.state.settings.theme}"
                    style="cursor: pointer;margin-left: 5px"
                    @click="edit('edit',row)"
                  />
                </el-tooltip>
                <el-tooltip v-del-tab-index class="item" effect="dark" content="订单关闭" placement="top">
                  <i
                    class="el-icon-switch-button"
                    :style="{color:$store.state.settings.theme}"
                    style="cursor: pointer;margin-left: 15px"
                    @click="orderClose(row.id)"
                  />
                </el-tooltip>
                <el-tooltip v-del-tab-index class="item" effect="dark" content="订单删除" placement="top">
                  <i
                    class="el-icon-delete"
                    :style="{color:$store.state.settings.theme}"
                    style="cursor: pointer;margin-left: 15px"
                    @click="orderDel(row.id)"
                  />
                </el-tooltip>
              </div>
@@ -423,6 +450,14 @@
            style="width: 200px"
          />
        </el-form-item>
        <el-form-item label="销售业务员" prop="">
          <el-input
            v-model="dialogForm.clerkuser"
            disabled
            style="width: 200px"
          />
        </el-form-item>
        <el-form-item label="预计交付日期" prop="saleOrderDeliveryDate">
          <el-date-picker
            v-model="dialogForm.saleOrderDeliveryDate"
@@ -436,7 +471,6 @@
            :disabled="dialogForm.saleOrderDeliveryDateIsDisabled"
          />
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <div class="footerButton">
@@ -459,8 +493,15 @@
import { handleDatetime } from '@/utils/global'
import elDragDialog from '@/directive/el-drag-dialog'
import waves from '@/directive/waves'
import { ClosedErpOrder, DeleteErpOrder, ErpOrderSearch, MarkSaveErpOrder } from '@/api/WorkOrder'
import {
  ClosedErpOrder,
  DeleteErpOrder,
  ErpOrderSearch,
  MarkBatchSaveErpOrder,
  MarkSaveErpOrder
} from '@/api/WorkOrder'
import { SeaveSearchErpOrder } from '@/api/ErpSyncMes'
import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
const SER_HZ = /^[\u4e00-\u9fa5]+$/
export default {
@@ -487,6 +528,7 @@
      mainHeight: 0,
      tableHeight: 0,
      form: {
        wkshopcode: '', // 车间编码
        erporderstus: '', // 订单状态码
        erpordercode: '', // 订单编号
        partcode: '', // 产品编码
@@ -509,6 +551,7 @@
        { code: 'CREATED', name: '全部下达' },
        { code: 'CLOSED', name: '已关闭' }
      ],
      wkshopcodeArr: [],
      total: 10,
      radioSelectedId: '',
      tableData: [],
@@ -533,6 +576,8 @@
        markqty: '', // 下单数量
        ordernum: '', // 下单单数
        relse_qty: '', // 已下单数量
        clerkuser: '', // 销售业务员
        saleOrderDeliveryDate: '' // 预计交付日期
      },
@@ -559,7 +604,8 @@
        disabledDate(time) {
          return time.getTime() < Date.now() - 8.64e7
        }
      }
      },
      multipleSelection: []
      // expireTimeOption: {
      //   disabledDate(time) {
@@ -572,12 +618,18 @@
  created() {
    this.getErpOrderSearch()
    // this.getPartSelect()// 获取产品编码信息
    this.getPrentOrganizationNoCompany()
  },
  mounted() {
    window.addEventListener('resize', this.getHeight)
    this.getHeight()
  },
  methods: {
    async getPrentOrganizationNoCompany() {
      const { data: res } = await PrentOrganizationNoCompany()
      this.wkshopcodeArr = res
    },
    async getErpOrderSearch() {
      console.log(this.form, 1)
      let tempDate2 = this.form.paystartdate
@@ -591,6 +643,7 @@
      }
      const data = {
        wkshopcode: this.form.wkshopcode,
        erporderstus: this.form.erporderstus, // 订单状态码
        erpordercode: this.form.erpordercode, // 订单编号
        partcode: this.form.partcode, // 产品编码
@@ -661,6 +714,7 @@
    },
    // 重置
    reset() {
      this.form.wkshopcode = ''
      this.form.erporderstus = ''
      this.form.erpordercode = ''
      this.form.partcode = ''
@@ -674,20 +728,17 @@
      this.getErpOrderSearch()
    },
    // 单选框选中获取当前行信息
    getCurrentRow(id) {
      this.radioSelectedId = id
    },
    rowClick(row) {
      this.radioSelectedId = row.id
    },
    // getCurrentRow(id) {
    //   this.radioSelectedId = id
    // },
    // rowClick(row) {
    //   this.radioSelectedId = row.id
    // },
    // 订单删除
    orderDel() {
      if (this.radioSelectedId.length < 1) {
        return this.$message.info('请先选择订单!')
      }
    orderDel(id) {
      this.tableData.forEach(item => {
        if (item.id === this.radioSelectedId) {
        if (item.id === id) {
          if (item.status === 'CLOSED') {
            return this.$message.info('此订单已关闭,无法删除!')
          } else {
@@ -696,7 +747,7 @@
              cancelButtonText: '取消',
              type: 'warning'
            }).then(() => {
              DeleteErpOrder({ erpordercode: item.wo, erporderid: this.radioSelectedId }).then(res => {
              DeleteErpOrder({ erpordercode: item.wo, erporderid: id }).then(res => {
                if (res.code === '200') {
                  this.$message.success('订单删除成功!')
                  this.getErpOrderSearch()
@@ -710,12 +761,9 @@
      })
    },
    // 订单关闭
    async orderClose() {
      if (this.radioSelectedId.length < 1) {
        return this.$message.info('请先选择订单!')
      }
    async orderClose(id) {
      this.tableData.forEach(item => {
        if (item.id === this.radioSelectedId) {
        if (item.id === id) {
          if (item.status !== 'NEW') {
            return this.$message.info('此订单非新订单,无法关闭!')
          } else {
@@ -724,7 +772,7 @@
              cancelButtonText: '取消',
              type: 'warning'
            }).then(() => {
              ClosedErpOrder({ erpordercode: item.wo, erporderid: this.radioSelectedId }).then(res => {
              ClosedErpOrder({ erpordercode: item.wo, erporderid: id }).then(res => {
                if (res.code === '200') {
                  this.$message.success('订单关闭成功!')
                  this.getErpOrderSearch()
@@ -736,6 +784,55 @@
          }
        }
      })
    },
    batchHandle() {
      this.$confirm('是否批量下达?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        if (this.multipleSelection.length === 0) {
          return this.$message.info('请先选择订单!')
        }
        // console.log(JSON.parse(JSON.stringify(this.multipleSelection)))
        const data = []
        this.multipleSelection.forEach(i => {
          data.push({
            'erporderid': i.id,
            'sbid': i.sbid,
            'erpordercode': i.wo,
            'partcode': i.partcode,
            'wkshopcode': i.wkshp_code,
            'warehousecode': i.stck_code,
            'erpqty': i.qty,
            'markqty': i.qty,
            'ordernum': 1,
            'clerkuser': i.clerkuser,
            'relse_qty': i.qty,
            'saleordercode': i.saleOrderCode,
            // 'saleOrderDeliveryDate': i.saleOrderDeliveryDate
            'saleOrderDeliveryDate': handleDatetime(new Date()) + ' 00:00:00'
          })
        })
        // console.log(JSON.parse(JSON.stringify(data)))
        MarkBatchSaveErpOrder(data).then(res => {
          if (res.code === '200') {
            this.multipleSelection = []
            this.$message.success('批量下达成功!')
            this.getErpOrderSearch()
          } else {
            this.$message.error('批量下达失败!')
          }
        })
      }).catch(() => {
        this.$message.info('已取消下达!')
      })
    },
    selected(row, index) {
      return row.status === 'NEW'
    },
    handleSelectionChange(val) {
      this.multipleSelection = val
    },
    // 新增按钮
    add(operation) {
@@ -773,6 +870,7 @@
        this.dialogForm.markqty = parseFloat(row.qty) - parseFloat(row.relse_qty)
        this.dialogForm.ordernum = 1
        this.dialogForm.relse_qty = row.relse_qty
        this.dialogForm.clerkuser = row.clerkuser
      })
    },
    // 对话框关闭事件
@@ -831,7 +929,7 @@
            'partcode': this.dialogForm.partcode,
            'wkshopcode': this.dialogForm.wkshopcode,
            'warehousecode': this.dialogForm.warehousecode,
            'clerkuser': this.dialogForm.clerkuser,
            'erpqty': this.dialogForm.erpqty,
            'markqty': this.dialogForm.markqty,
            'ordernum': this.dialogForm.ordernum,
@@ -899,12 +997,12 @@
  margin-right: 15px;
}
::v-deep .el-button--primary, .el-button--default, .el-button--info {
  height: 34px;
  display: flex;
  align-items: center;
  padding: 0 15px;
}
//::v-deep .el-button--primary, .el-button--default, .el-button--info {
//  height: 34px;
//  display: flex;
//  align-items: center;
//  padding: 0 15px;
//}
::v-deep .el-button--primary {
  //background-color: $main_color !important;