loulijun2021
2023-05-31 f3c578b9ed1d5f6b6271d3c03f9d30352a9c2c2c
src/components/DatePicker/index.vue
@@ -42,11 +42,14 @@
                :disabled="!isDblDate(visibleDays[(i-1)*7+(j-1)])"
              >
                <div class="pop_style">{{ callbackTxt(visibleDays[(i - 1) * 7 + (j - 1)]) }}</div>
                <!--                <div class="pop_style">123</div>-->
                <span
                  slot="reference"
                  :class="[{select:isSelect(visibleDays[(i-1)*7+(j-1)])},
                           {dblDateStyle:isDblDate(visibleDays[(i-1)*7+(j-1)])}]"
                  :style="{background: isSelect(visibleDays[(i-1)*7+(j-1)])?$store.state.settings.theme:''}"
                >{{ visibleDays[(i - 1) * 7 + (j - 1)].getDate() }}</span>
              </el-popover>
@@ -126,7 +129,8 @@
  CapacityPlanningGivePlanSubmit,
  CapacityPlanningOnclickSelect,
  CapacityPlanningSetupSearch
} from '@/api/scgl'
} from '@/api/produceManager'
import { handleDatetime } from '@/utils/global'
var time = null
export default {
@@ -244,11 +248,10 @@
        }
      }
      for (const i in this.projectDef) {
        if (this.projectDef[i].CapSetupCode === code) {
          name = this.projectDef[i].CapSetupName
        if (this.projectDef[i].code === code) {
          name = this.projectDef[i].name
        }
      }
      return name
    },
    getHeight() {
@@ -260,7 +263,7 @@
      }
      const e = event || window.event
      // console.log(e.clientY, 7)
      const nowHeigth = e.clientY
      if (nowHeigth >= 500) {
        this.topStyle = true
@@ -303,7 +306,7 @@
      this.getCapacityPlanningCalendar()
      this.getHeight()
      this.CapacityPlanningSetupSearch()
      this.getCapacityPlanningSetupSearch()
      this.CapacityPlanningSearch()
    },
    blur() {
@@ -331,14 +334,13 @@
      clearTimeout(time) // 首先清除计时器
      time = setTimeout(() => {
        this.time = funsdates.getYearMonthDay(date)
        // const timeDate = ''
        if (typeof this.value === 'string') {
          this.value = this.value.split(',')
        }
        this.isDbl = false
        // 可以点击的日期
        if (!this.isPastDue(date)) {
          if ((this.value.indexOf(this.handleDatetime(date)) < 0 && this.value !== '') || this.value === '') { // 数组添加
            if (typeof this.value === 'string') {
              this.value = this.value.split(',')
            }
            this.value.push(this.handleDatetime(date)) // 新增到input里
            const data = {
              name: this.handleDatetime(date),
@@ -347,9 +349,6 @@
            this.defArr.push(data) // 新增到 默认数组里
          } else if (this.value.indexOf(this.handleDatetime(date)) >= 0) { // 数组减去
            const indexV = this.value.indexOf(this.handleDatetime(date))
            if (typeof this.value === 'string') {
              this.value = this.value.split(',')
            }
            this.value.splice(indexV, 1)
            for (const i in this.defArr) {
              if (this.defArr[i].name === this.handleDatetime(date)) {
@@ -364,16 +363,57 @@
    dblChooseDate(date) {
      if (!this.isPastDue(date)) {
        clearTimeout(time)
        this.dblDate = date
        this.isDbl = true
        this.changeTime = this.handleDatetime(date)
        time = setTimeout(() => {
          this.time = funsdates.getYearMonthDay(date)
          if (typeof this.value === 'string') {
            this.value = this.value.split(',')
          }
          // 可以点击的日期
          if (!this.isPastDue(date)) {
            if ((this.value.indexOf(this.handleDatetime(date)) < 0 && this.value !== '') || this.value === '') { // 数组添加
              this.value.push(this.handleDatetime(date)) // 新增到input里
              const data = {
                name: this.handleDatetime(date),
                key: this.rowData.CaptPlanWorkShiftCode
              }
              this.defArr.push(data) // 新增到 默认数组里
              this.dblDate = date
              this.isDbl = true // 右侧展开
        this.CapacityPlanningOnclickSelect({
          CaptPlanWorkShiftCode: this.rowData.CaptPlanWorkShiftCode,
          captplanid: this.rowData.CaptPlanId,
          datetime: this.handleDatetime(date)
        })
        this.getDblTime()
              this.changeTime = this.handleDatetime(date)
              const DATA = {
                CaptPlanWorkShiftCode: this.defArr.find(item => item.name === this.changeTime).key,
                captplanid: this.rowData.CaptPlanId,
                datetime: this.handleDatetime(date)
              }
              this.getCapacityPlanningOnclickSelect(DATA)
              this.getDblTime()
            } else if (this.value.indexOf(this.handleDatetime(date)) >= 0) {
              this.dblDate = date
              this.isDbl = true // 右侧展开
              this.changeTime = this.handleDatetime(date)
              const DATA = {
                CaptPlanWorkShiftCode: this.defArr.find(item => item.name === this.changeTime).key,
                captplanid: this.rowData.CaptPlanId,
                datetime: this.handleDatetime(date)
              }
              this.getCapacityPlanningOnclickSelect(DATA)
              this.getDblTime()
              //   const indexV = this.value.indexOf(this.handleDatetime(date))
              //   this.value.splice(indexV, 1)
              //   for (const i in this.defArr) {
              //     if (this.defArr[i].name === this.handleDatetime(date)) {
              //       this.defArr.splice(i, 1)
              //     }
              //   }
            }
          }
          this.$emit('input', this.value)
        }, 300)
      }
    },
    isDblDate(date) {
@@ -438,7 +478,7 @@
    //         }
    // },
    // 双击请求数据
    CapacityPlanningOnclickSelect(data) {
    getCapacityPlanningOnclickSelect(data) {
      CapacityPlanningOnclickSelect(data).then((res) => {
        this.projectList = res.data
@@ -476,22 +516,23 @@
    },
    getCapacityPlanningCalendar() {
      CapacityPlanningCalendar({ captplanid: this.rowData.CaptPlanId }).then((res) => {
        this.defArr = res.data
        const currentDate = handleDatetime(new Date())
        this.defArr = res.data.filter(i => i.name >= currentDate)
      })
    },
    closeCapacityPlanningCalendar() {
      CapacityPlanningCalendar({ captplanid: this.rowData.CaptPlanId }).then((res) => {
        const nameList = []
        for (const i in res.List) {
          nameList.push(res.List[i].name)
          if (res.List[i].key === '') {
            res.List[i].key = this.rowData.CaptPlanWorkShiftCode
        for (const i in res.data) {
          nameList.push(res.data[i].name)
          if (res.data[i].key === '') {
            res.data[i].key = this.rowData.CaptPlanWorkShiftCode
          }
        }
        for (const i in this.defArr) {
          for (const j in res.List) {
            if (this.defArr[i].name === this.changeTime && res.List[j].name === this.changeTime) {
              this.defArr[i].key = res.List[j].key
          for (const j in res.data) {
            if (this.defArr[i].name === this.changeTime && res.data[j].name === this.changeTime) {
              this.defArr[i].key = res.data[j].key
            } else if (this.defArr[i].name === this.changeTime && nameList.indexOf(this.changeTime) === -1) {
              this.defArr[i].key = this.rowData.CaptPlanWorkShiftCode
            }
@@ -505,9 +546,9 @@
        this.closeCapacityPlanningCalendar()
      }, 300)
    },
    CapacityPlanningSetupSearch() {
    getCapacityPlanningSetupSearch() {
      CapacityPlanningSetupSearch(this.form).then((res) => {
        this.projectDef = res.rows
        this.projectDef = res.data
      })
    }