loulijun2021
2024-05-11 fc06215c58fef8431e9574235680bffd840b507a
1.生产工单新增预计开工日期、预计完工日期
已修改3个文件
252 ■■■■■ 文件已修改
src/components/DateType/index.vue 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrder/produceOrderList.vue 106 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrder/workOrderList.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/DateType/index.vue
@@ -112,34 +112,44 @@
        @show="datatypePopoverIsShow=true"
      >
        <div class="popoverList">
          <div class="popoverListItem2">
          <div v-for="item in datatypeList" :key="item.code" class="popoverListItem2">
            <el-button
              :class="datatype==='PS'?'selectButton':''"
              @click="datatypeClick('PS')"
            >预计开工日期
              :class="datatype===item.code?'selectButton':''"
              @click="datatypeClick(item.code)"
            >{{ item.name }}
            </el-button>
          </div>
          <div class="popoverListItem2">
            <el-button
              :class="datatype==='PE'?'selectButton':''"
              @click="datatypeClick('PE')"
            >预计完工日期
            </el-button>
          </div>
          <div class="popoverListItem2">
            <el-button
              :class="datatype==='ED'?'selectButton':''"
              @click="datatypeClick('ED')"
            >预计交付日期
            </el-button>
          </div>
          <!--          <div class="popoverListItem2">-->
          <!--            <el-button-->
          <!--              :class="datatype==='PS'?'selectButton':''"-->
          <!--              @click="datatypeClick('PS')"-->
          <!--            >预计开工日期-->
          <!--            </el-button>-->
          <!--          </div>-->
          <!--          <div class="popoverListItem2">-->
          <!--            <el-button-->
          <!--              :class="datatype==='PE'?'selectButton':''"-->
          <!--              @click="datatypeClick('PE')"-->
          <!--            >预计完工日期-->
          <!--            </el-button>-->
          <!--          </div>-->
          <!--          <div class="popoverListItem2">-->
          <!--            <el-button-->
          <!--              :class="datatype==='ED'?'selectButton':''"-->
          <!--              @click="datatypeClick('ED')"-->
          <!--            >预计交付日期-->
          <!--            </el-button>-->
          <!--          </div>-->
        </div>
        <div
          slot="reference"
          style="color: #a7a7a7;font-weight: 600;  font-size:14px;width: 100px;text-align: center;
                font-family:'Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif';"
        > {{ datatype === 'PS' ? '预计开工日期' : datatype === 'PE' ? '预计完工日期' : '预计交付日期' }}
        >
          {{ datatypeList.find(i=>i.code===datatype).name }}
          <!--          {{ datatype === 'PS' ? '预计开工日期' : datatype === 'PE' ? '预计完工日期' : '预计交付日期' }}-->
        </div>
      </el-popover>
@@ -174,7 +184,7 @@
      default() {
        return false
      }
    }
    },
    // cycleTimePopoverIsShow: {
    //   type: Boolean,
    //   default() {
@@ -199,6 +209,18 @@
    //     return 'ED'
    //   }
    // }
    datatypeList: {
      type: Array,
      default() {
        return [
          { code: 'PS', name: '预计开工日期' },
          { code: 'PE', name: '预计完工日期' },
          { code: 'ED', name: '预计交付日期' }
          // { code: 'CT', name: '创建日期' }
        ]
      }
    }
  },
  data() {
    return {
src/views/workOrder/produceOrderList.vue
@@ -438,8 +438,8 @@
      v-el-drag-dialog
      :title="operation==='add'?'新增':'下达'"
      :visible.sync="dialogVisible"
      width="860px"
      top="15vh"
      width="900px"
      top="12vh"
      :close-on-click-modal="false"
      @closed="handleClose"
      @close="handleClose"
@@ -497,6 +497,8 @@
            style="width: 200px"
          />
        </el-form-item>
        <!--        :picker-options="pickerOptions"-->
        <el-form-item label="预计交付日期" prop="saleOrderDeliveryDate">
          <el-date-picker
            v-model="dialogForm.saleOrderDeliveryDate"
@@ -504,12 +506,44 @@
            size="mini"
            :clearable="false"
            class="dateMini"
            :picker-options="pickerOptions"
            format="yyyy-MM-dd"
            style="width: 200px"
            placeholder="选择日期"
            :disabled="dialogForm.saleOrderDeliveryDateIsDisabled"
          />
        </el-form-item>
        <div style="display: flex">
          <el-form-item label="预计开工日期" prop="" style="display: flex">
            <el-date-picker
              v-model="dialogForm.paystartdate"
              type="date"
              size="mini"
              style="width: 200px"
              :clearable="false"
              class="dateMini"
              format="yyyy-MM-dd"
              value-format="yyyy-MM-dd"
              placeholder="选择日期"
            />
          </el-form-item>
          <el-form-item label="预计完工日期" prop="" style="display: flex">
            <el-date-picker
              v-model="dialogForm.payenddate"
              type="date"
              size="mini"
              style="width: 200px"
              :clearable="false"
              class="dateMini"
              format="yyyy-MM-dd"
              value-format="yyyy-MM-dd"
              placeholder="选择日期"
            />
          </el-form-item>
        </div>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <div class="footerButton">
@@ -541,7 +575,6 @@
} from '@/api/WorkOrder'
import { SeaveSearchErpOrder } from '@/api/ErpSyncMes'
import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
import moment from 'moment'
import DateType from '@/components/DateType'
const SER_HZ = /^[\u4e00-\u9fa5]+$/
@@ -625,7 +658,10 @@
        clerkuser: '', // 销售业务员
        saleOrderDeliveryDate: '' // 预计交付日期
        saleOrderDeliveryDate: '', // 预计交付日期
        paystartdate: '', //   预计开工日期
        payenddate: ''//  预计完工日期
      },
      operation: '',
      dialogFormRules: {
@@ -647,49 +683,9 @@
      },
      pickerOptions: {
        shortcuts: [
          {
            text: '当天',
            onClick(picker) {
              const end = new Date()
              const start = new Date()
              start.setTime(start.getTime())
              picker.$emit('pick', [start, end])
            }
          }, {
            text: '近三天',
            onClick(picker) {
              const end = new Date()
              const start = new Date()
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 3)
              console.log([start, end], '[start, end]')
              picker.$emit('pick', [start, end])
            }
          }, {
            text: '近一周',
            onClick(picker) {
              const end = new Date()
              const start = new Date()
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
              picker.$emit('pick', [start, end])
            }
          }, {
            text: '近一个月',
            onClick(picker) {
              const end = new Date()
              const start = new Date()
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
              picker.$emit('pick', [start, end])
            }
          }, {
            text: '近三个月',
            onClick(picker) {
              const end = new Date()
              const start = new Date()
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
              picker.$emit('pick', [start, end])
            }
          }]
        disabledDate(time) {
          return time.getTime() < Date.now() - 8.64e7
        }
      },
      multipleSelection: []
@@ -714,7 +710,6 @@
  methods: {
    DateTypeChange(value) {
      console.log('asd', value)
      this.form.datatype = value
    },
    cycleTimeChange(val) {
@@ -922,7 +917,10 @@
            'relse_qty': i.qty,
            'saleordercode': i.saleOrderCode,
            // 'saleOrderDeliveryDate': i.saleOrderDeliveryDate
            'saleOrderDeliveryDate': handleDatetime(new Date()) + ' 00:00:00'
            'saleOrderDeliveryDate': handleDatetime(new Date()) + ' 00:00:00',
            'paystartdate': i.planstartdate,
            'payenddate': i.planenddate
          })
        })
        // console.log(JSON.parse(JSON.stringify(data)))
@@ -982,6 +980,9 @@
        this.dialogForm.ordernum = 1
        this.dialogForm.relse_qty = row.relse_qty
        this.dialogForm.clerkuser = row.clerkuser
        this.dialogForm.paystartdate = row.planstartdate
        this.dialogForm.payenddate = row.planenddate
      })
    },
    // 对话框关闭事件
@@ -1006,6 +1007,9 @@
        markqty: '', // 下单数量
        ordernum: '', // 下单单数
        relse_qty: '', // 已下单数量
        payenddate: '', // 预计完工日期
        paystartdate: '', // 预计开工日期
        saleOrderDeliveryDate: '' // 预计交付日期
      }
@@ -1044,6 +1048,8 @@
            'erpqty': this.dialogForm.erpqty,
            'markqty': this.dialogForm.markqty,
            'ordernum': this.dialogForm.ordernum,
            'payenddate': this.dialogForm.payenddate,
            'paystartdate': this.dialogForm.paystartdate,
            'relse_qty': this.dialogForm.relse_qty,
            'saleOrderDeliveryDate': handleDatetime(this.dialogForm.saleOrderDeliveryDate) + ' 00:00:00'
          }
src/views/workOrder/workOrderList.vue
@@ -90,26 +90,14 @@
            <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="创建时间" style=" display: flex;">
              <!--              <el-date-picker-->
              <!--                v-model="form.createdate"-->
              <!--                type="daterange"-->
              <!--                :clearable="false"-->
              <!--                range-separator="~"-->
              <!--                start-placeholder="开始日期"-->
              <!--                end-placeholder="结束日期"-->
              <!--                size="mini"-->
              <!--              />-->
              <el-date-picker
                v-model="form.createdate"
                type="date"
                size="mini"
                :clearable="false"
                class="dateMini"
                format="yyyy-MM-dd"
                placeholder="选择日期"
              />
            </el-form-item>
            <DateType
              ref="DateTypeRef"
              :is-expand-form="isExpandForm"
              style="display:flex;justify-content: center;align-items: center;position: relative"
              :datatype-list="datatypeList"
              @DateTypeChange="DateTypeChange"
              @cycleTimeChange="cycleTimeChange"
            />
          </div>
          <div
@@ -283,6 +271,28 @@
          >
            <template slot-scope="{row}">
              <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="plan_startdate"
            label="预计开工日期"
            sortable="custom"
            width="130"
          >
            <template slot-scope="{row}">
              <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
          <el-table-column
            prop="plan_enddate"
            label="预计完工日期"
            sortable="custom"
            width="130"
          >
            <template slot-scope="{row}">
              <div v-if="row.plan_enddate">{{ row.plan_enddate.substring(0, 11) }}</div>
              <div v-else>/</div>
            </template>
          </el-table-column>
@@ -1990,11 +2000,11 @@
import Sortable from 'sortablejs'
import ElDragSelect from '@/components/DragSelect'
import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui
import DateType from '@/components/DateType'
export default {
  name: 'WorkOrderList',
  components: {
    Pagination, ElDragSelect
    Pagination, ElDragSelect, DateType
  },
  directives: { elDragDialog, waves },
  data() {
@@ -2017,7 +2027,9 @@
        partname: '', // 产品名称
        partspec: '', // 产品规格
        creatuser: '', // 创建人员
        createdate: '', // 创建时间
        // createdate: '', // 创建时间
        datatype: 'ED', // 日期类型(计划开工(PS)、计划完工(PE)、预计交付(ED)、创建日期(CT))
        timeValue: [], // 查询日期
        prop: 'lm_date', // 排序字段
        order: 'desc', // 排序字段
        page: 1, // 第几页
@@ -2240,7 +2252,14 @@
      stepSelectArr: [], // 工序下拉数据
      stepSelectedValue: [], // 下拉选中值
      multipleSelection: []
      multipleSelection: [],
      datatypeList: [
        { code: 'PS', name: '预计开工日期' },
        { code: 'PE', name: '预计完工日期' },
        { code: 'ED', name: '预计交付日期' },
        { code: 'CT', name: '工单创建日期' }
      ]
    }
  },
  watch: {
@@ -2276,6 +2295,12 @@
    // })
  },
  methods: {
    DateTypeChange(value) {
      this.form.datatype = value
    },
    cycleTimeChange(val) {
      this.form.timeValue = val
    },
    setSort() {
      const el = this.$refs.stepTableDataRef.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0]
      this.sortable = Sortable.create(el, {
@@ -2328,7 +2353,9 @@
        sourceorder: this.form.sourceorder, // 源单单号
        saleordercode: this.form.saleordercode, // 销售订单
        ordertype: this.form.ordertype, // 单据类型
        createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // 创建时间
        datatype: this.form.datatype,
        searchdate: this.form.timeValue.join('~'),
        // createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // 创建时间
        prop: this.form.prop, // 排序字段
        order: this.form.order, // 排序字段
        page: this.form.page, // 第几页
@@ -2400,7 +2427,12 @@
      this.form.creatuser = ''
      this.form.sourceorder = ''
      this.form.ordertype = ''
      this.form.createdate = ''
      // this.form.createdate = ''
      this.form.timeValue = []
      this.cycleTime = null
      this.$refs.DateTypeRef.clearValue()
      this.getMesOrderSearch()
    },
    // 新增按钮