From f3425be7724211c186c0bfeea87aa164720dd85f Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期四, 13 十月 2022 17:02:05 +0800
Subject: [PATCH] 1.产能规划页面实现静态部分

---
 src/utils/funsdate.js               |   15 
 src/views/scgl/cngh.vue             |  603 +++++++++++++++--------
 src/views/zzmx/wlqd.vue             |    1 
 src/api/scgl.js                     |   56 ++
 src/components/DatePicker/index.vue |  772 ++++++++++++++++++++++++++++++
 5 files changed, 1,225 insertions(+), 222 deletions(-)

diff --git a/src/api/scgl.js b/src/api/scgl.js
index 102dee4..4aef108 100644
--- a/src/api/scgl.js
+++ b/src/api/scgl.js
@@ -252,3 +252,59 @@
     data
   })
 }
+// 浜ц兘瑙勫垝鏌ヨ
+export function CapacityPlanningSearch(data) {
+  return request({
+    url: 'ProductionManagement/CapacityPlanningSearch',
+    method: 'get',
+    params: data
+  })
+}
+// 浜ц兘瑙勫垝榛樿鏂规淇濆瓨鎻愪氦
+export function CapacityPlanSubmit(data) {
+  return request({
+    url: 'ProductionManagement/CapacityPlanSubmit',
+    method: 'post',
+    params: data
+  })
+}
+
+// 浜ц兘瑙勫垝鐐瑰嚮鏃ュ巻缁勪欢鏌ユ壘宸插叧鑱旂殑鏃ユ湡鏂规
+export function CapacityPlanningCalendar(data) {
+  return request({
+    url: 'ProductionManagement/CapacityPlanningCalendar',
+    method: 'get',
+    params: data
+  })
+}
+// 浜ц兘瑙勫垝鏃ュ巻鍙屽嚮鏃跺甫鍑哄搴旂殑鏂规
+export function CapacityPlanningOnclickSelect(data) {
+  return request({
+    url: 'ProductionManagement/CapacityPlanningOnclickSelect',
+    method: 'get',
+    params: data
+  })
+}
+// 浜ц兘瑙勫垝鏂规璁剧疆鏌ヨ
+export function CapacityPlanningSetupSearch(data) {
+  return request({
+    url: 'ProductionManagement/CapacityPlanningSetupSearch',
+    method: 'get'
+  })
+}
+// 浜ц兘瑙勫垝鏂规璁剧疆鏂板
+export function CapacityPlanningSetupAddUpdate(data) {
+  return request({
+    url: 'ProductionManagement/CapacityPlanningSetupAddUpdate',
+    method: 'post',
+    data
+  })
+}
+// 浜ц兘瑙勫垝鏂规璁剧疆鍒犻櫎
+export function CapacityPlanningSetupDelete(data) {
+  return request({
+    url: 'ProductionManagement/CapacityPlanningSetupDelete',
+    method: 'post',
+    params: data
+  })
+}
diff --git a/src/components/DatePicker/index.vue b/src/components/DatePicker/index.vue
new file mode 100644
index 0000000..71d22b0
--- /dev/null
+++ b/src/components/DatePicker/index.vue
@@ -0,0 +1,772 @@
+<template>
+  <div v-click-outside onselectstart="return false" style="-moz-user-select : none">
+    <input type="text" :value="value" :rowData="rowData" class="input__inner">
+    <div v-if="isVisible" :class="[{pannel:true},{top_yes:topStyle}]">
+      <div class="pannel-nav">
+        <span class="fl" @click="prevYear"><i class="el-icon-d-arrow-left" /></span>
+        <span class="fl" @click="prevMonth"><i class="el-icon-arrow-left" /></span>
+        <span class="yearStyle">{{ time.year }}骞�</span>
+        <span class="yearStyle">{{ time.month + 1 }}鏈�</span>
+        <span class="fr" @click="nextYear"><i class="el-icon-d-arrow-right" /></span>
+        <span class="fr" @click="nextMonth"><i class="el-icon-arrow-right" /></span>
+      </div>
+      <div class="pannel-content">
+        <div class="days">
+          <span
+            v-for="k in 7"
+            :key="k"
+            class="cell"
+            style="border-bottom: solid 1px #E7E7EA;padding-bottom: 10px;margin-bottom: 10px;"
+          >
+            {{ weekDays[k - 1] }}
+          </span>
+          <div v-for="i in 6" :key="i">
+            <div
+              v-for="j in 7"
+              :key="j"
+              :class="[
+                {notCurrentMonth:!isCurrentMonth(visibleDays[(i-1)*7+(j-1)]
+                ),cellDays:true,cell:true,mb3:true},
+                {today:isToday(visibleDays[(i-1)*7+(j-1)])},
+                {pastDue:isPastDue(visibleDays[(i-1)*7+(j-1)])}
+              ]"
+              @click="chooseDate(visibleDays[(i-1)*7+(j-1)])"
+              @dblclick="dblChooseDate(visibleDays[(i-1)*7+(j-1)])"
+            >
+
+              <el-popover
+                placement="top"
+                title=""
+                width="50"
+                trigger="hover"
+
+                :disabled="!isDblDate(visibleDays[(i-1)*7+(j-1)])"
+              >
+                <div class="pop_style">{{ callbackTxt(visibleDays[(i - 1) * 7 + (j - 1)]) }}</div>
+                <span
+                  slot="reference"
+                  :class="[{select:isSelect(visibleDays[(i-1)*7+(j-1)])},
+                           {dblDateStyle:isDblDate(visibleDays[(i-1)*7+(j-1)])}]"
+                >{{ visibleDays[(i - 1) * 7 + (j - 1)].getDate() }}</span>
+              </el-popover>
+
+            </div>
+          </div>
+
+        </div>
+      </div>
+      <div class="pannel-footer">
+        <el-button v-if="!isDbl" size="mini" class="fr mt4" @click="CapacityPlanningGivePlanSubmit">纭� 瀹�</el-button>
+      </div>
+      <div v-if="isVisible && isDbl" class="pannelTo">
+        <div class="pannelTo_title mt5"><span class="bigText mr5">{{ dblTime.day }}鏃�</span> <span class="samllText mr5">{{
+          dblTime.year
+        }}骞磠{ dblTime.month + 1 }}鏈�</span><span class="samllText">鏄熸湡{{ getweekday(handleDatetime(dblDate)) }}</span>
+        </div>
+        <div class="pannelTo_nav">
+          <el-select v-model="schemeDate" size="small" style="width:240px;" @change="changeScheme">
+            <el-option v-for="item in projectList" :key="item.CapCode" :value="item.CapCode" :label="item.CapName" />
+          </el-select>
+        </div>
+        <div class="pannelTo_conent">
+          <ul>
+            <li style="margin-bottom: 12px;">
+              <span class="fl fl_ml li_text">寮�濮嬫椂闂�</span>
+              <span class="fr fr_mr li_text">缁撴潫鏃堕棿</span>
+            </li>
+
+            <li v-for="item in timeList" :key="item">
+              <!-- <span  class='fl'>{{item.start}}</span> -->
+              <el-time-select
+                v-model="item.start"
+                :disabled="true"
+                :picker-options="{
+                  start: '00:00',
+                  step: '00:01',
+                  end: '23:59'
+                }"
+                placeholder="寮�濮�"
+                size="small"
+                style="width:100px;"
+                class="fl"
+              />
+              <span class="li_text_color">~</span>
+              <el-time-select
+                v-model="item.end"
+                :disabled="true"
+                :picker-options="{
+                  start: '00:00',
+                  step: '00:01',
+                  end: '23:59'
+                }"
+                placeholder="缁撴潫"
+                size="small"
+                style="width:100px;"
+                class="fr"
+              />
+              <!-- <span  class='fr'>{{item.end}}</span> -->
+            </li>
+
+          </ul>
+        </div>
+        <div class="pannelTo_footer">
+          <el-button size="mini" class="fr bt_style" @click="CapacityPlanningGivePlanSubmit">纭� 瀹�</el-button>
+          <el-button size="mini" class="fr" @click="close">鍙� 娑�</el-button>
+        </div>
+      </div>
+    </div>
+
+  </div>
+</template>
+<script>
+import * as funsdates from '@/utils/funsdate'
+// import capacityPlanning from '@/api/capacityPlanning'
+var time = null
+export default {
+  directives: {
+    clickOutside: {
+      bind(el, bindings, vnode) {
+        const handler = (e) => {
+          if (el.contains(e.target)) {
+            if (!vnode.context.isVisible) {
+              vnode.context.focus()
+            }
+          } else {
+            if (vnode.context.isVisible) {
+              vnode.context.blur()
+            }
+          }
+        }
+        el.handler = handler
+        document.addEventListener('click', handler)
+      },
+      unbind(el) {
+        document.removeEventListener('click', el.handler)
+      }
+    }
+  },
+  props: {
+    value: {
+      // type:Date,
+      // default:()=> new Date
+      type: String,
+      default: null
+    },
+    rowData: {
+      type: String,
+      default: null
+    },
+    CapacityPlanningSearch: {
+      type: Function,
+      default: null
+    }
+  },
+  data() {
+    const { year, month } = funsdates.getYearMonthDay(new Date())
+    return {
+      dblTime: {
+        year: '',
+        month: '',
+        day: ''
+      },
+      schemeDate: '',
+      dblDate: '',
+      projectList: [],
+      timeList: [],
+      timeArr: [],
+      isDbl: false,
+      dateNow: new Date(),
+      isVisible: false,
+      time: { year, month },
+      weekDays: ['鏃�', '涓�', '浜�', '涓�', '鍥�', '浜�', '鍏�'],
+      changeTime: '',
+      changeTimeArr: [],
+      defArr: [],
+      dm_top: '',
+      topStyle: false,
+      form: {
+        rows: 100,
+        page: 1
+      },
+      projectDef: []
+    }
+  },
+  computed: {
+    visibleDays() {
+      const { year, month } = funsdates.getYearMonthDay(new Date(this.time.year, this.time.month, 1))
+      const currentFirstDay = funsdates.getDay(year, month, 1)// 绗竴澶�
+      const week = currentFirstDay.getDay()
+      const satrtDay = currentFirstDay - week * 60 * 60 * 1000 * 24
+      const arr = []
+      for (let i = 0; i < 42; i++) {
+        arr.push(new Date(satrtDay + i * 60 * 60 * 1000 * 24))
+      }
+      return arr
+    },
+
+    formatDate() {
+      const { year, month, day } = funsdates.getYearMonthDay(this.dateNow)
+      return `${year}-${month + 1}-${day}`
+    }
+  },
+  mounted() {
+
+  },
+  methods: {
+    getDblTime() {
+      const { year, month, day } = funsdates.getYearMonthDay(this.dblDate)
+      this.dblTime = { year, month, day }
+    },
+    getweekday(date) {
+      var weekArray = new Array('鏃�', '涓�', '浜�', '涓�', '鍥�', '浜�', '鍏�')
+      var week = weekArray[new Date(date).getDay()]// 娉ㄦ剰姝ゅ蹇呴』鏄厛new涓�涓狣ate
+      return week
+    },
+    callbackTxt(date) {
+      let code = ''
+      let name = ''
+      if (this.isDblDate(date)) {
+        for (const i in this.defArr) {
+          if (this.defArr[i].name == this.handleDatetime(date)) {
+            code = this.defArr[i].key
+          }
+        }
+      }
+      for (const i in this.projectDef) {
+        if (this.projectDef[i].CapSetupCode == code) {
+          name = this.projectDef[i].CapSetupName
+        }
+      }
+
+      return name
+    },
+    getHeight() {
+      let winHeight // 灞忓箷鎬婚珮搴�
+      if (window.innerHeight) {
+        winHeight = window.innerHeight
+      } else if ((document.body) && (document.body.clientHeight)) {
+        winHeight = document.body.clientHeight
+      }
+
+      const e = event || window.event
+      const nowHeigth = e.clientY
+      if (nowHeigth >= 500) {
+        this.topStyle = true
+      }
+    },
+    // 鏀瑰彉鏃堕棿鏍煎紡
+    formatScheme(val) {
+      const arr = []
+      for (const i in val) {
+        const object = {
+          start: '',
+          end: ''
+        }
+        const s = val[i].split('~')
+        object.start = s[0]
+        object.end = s[1]
+        arr.push(object)
+      }
+      return arr
+    },
+    // 鏀瑰彉鏂规
+    changeScheme() {
+      let toList = []
+      for (const i in this.projectList) {
+        if (this.schemeDate == this.projectList[i].CapCode) {
+          toList = this.projectList[i].list
+        }
+      }
+
+      for (const i in this.defArr) {
+        if (this.defArr[i].name == this.changeTime) {
+          this.defArr[i].key = this.schemeDate
+        }
+      }
+
+      this.timeList = this.formatScheme(toList)
+    },
+    focus() {
+      this.isVisible = true
+      this.CapacityPlanningCalendar()
+      this.getHeight()
+      this.CapacityPlanningSetupSearch()
+      this.CapacityPlanningSearch()
+    },
+    blur() {
+      this.isVisible = false
+    },
+    isCurrentMonth(date) {
+      const { year, month } = funsdates.getYearMonthDay(new Date(this.time.year,
+        this.time.month, 1))
+      const { year: y, month: m } = funsdates.getYearMonthDay(date)
+      return year === y && month === m
+    },
+    isToday(date) {
+      const { year, month, day } = funsdates.getYearMonthDay(this.dateNow)
+      const { year: y, month: m, day: d } = funsdates.getYearMonthDay(date)
+      return year === y && month === m && day === d
+    },
+    // 杩囨湡鏃堕棿
+    isPastDue(date) {
+      const newDate = this.handleDatetime(new Date())
+      if (new Date(newDate) > date && this.handleDatetime(date) != newDate) {
+        return true
+      } else {
+        return false
+      }
+    },
+    chooseDate(date) {
+      clearTimeout(time) // 棣栧厛娓呴櫎璁℃椂鍣�
+      time = setTimeout(() => {
+        this.time = funsdates.getYearMonthDay(date)
+        const timeDate = ''
+        this.isDbl = false
+        // 鍙互鐐瑰嚮鐨勬棩鏈�
+        if (!this.isPastDue(date)) {
+          if ((this.value.indexOf(this.handleDatetime(date)) < 0 && this.value != '') || this.value == '') { // 鏁扮粍娣诲姞
+            this.value.push(this.handleDatetime(date)) // 鏂板鍒癷nput閲�
+            const data = {
+              name: this.handleDatetime(date),
+              key: this.rowData.CaptPlanWorkShiftCode
+            }
+
+            this.defArr.push(data) // 鏂板鍒� 榛樿鏁扮粍閲�
+          } else if (this.value.indexOf(this.handleDatetime(date)) >= 0) { // 鏁扮粍鍑忓幓
+            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)
+    },
+    dblChooseDate(date) {
+      if (!this.isPastDue(date)) {
+        clearTimeout(time)
+        this.dblDate = date
+        this.isDbl = true
+        this.changeTime = this.handleDatetime(date)
+        this.CapacityPlanningOnclickSelect({ CaptPlanId: this.rowData.CaptPlanId, DateTime: this.handleDatetime(date) })
+        this.getDblTime()
+      }
+    },
+    isDblDate(date) {
+      for (const i in this.defArr) {
+        if (this.defArr[i].key != '') {
+          if (this.defArr[i].name == this.handleDatetime(date) && this.defArr[i].key != this.rowData.CaptPlanWorkShiftCode) {
+            return true
+          }
+        }
+      }
+      // if(this.dblDate){
+      //     let {year,month,day} = funsdates.getYearMonthDay(this.dblDate)
+      //     let {year:y,month:m,day:d} = funsdates.getYearMonthDay(date)
+      //     return year === y && month === m && day === d;
+      // }
+    },
+    isSelect(date) {
+      if (this.value.indexOf(this.handleDatetime(date)) >= 0) {
+        return true
+      }
+    },
+    prevMonth() {
+      const d = funsdates.getDay(this.time.year, this.time.month, 1)
+      d.setMonth(d.getMonth() - 1)
+      this.time = funsdates.getYearMonthDay(d)
+    },
+    nextMonth() {
+      const d = funsdates.getDay(this.time.year, this.time.month, 1)
+      d.setMonth(d.getMonth() + 1)
+      this.time = funsdates.getYearMonthDay(d)
+    },
+    prevYear() {
+      const d = funsdates.getDay(this.time.year, this.time.month, 1)
+      d.setYear(d.getFullYear() - 1)
+      this.time = funsdates.getYearMonthDay(d)
+    },
+    nextYear() {
+      const d = funsdates.getDay(this.time.year, this.time.month, 1)
+      d.setYear(d.getFullYear() + 1)
+      this.time = funsdates.getYearMonthDay(d)
+    },
+    handleDatetime(date) {
+      const { year, month, day } = funsdates.getYearMonthDay(date)
+      const res = `${year}-${this.add_zero(month + 1)}-${this.add_zero(day)}`
+      return res
+    },
+    add_zero(date) {
+      if (date < 10) {
+        return '0' + date
+      } else {
+        return date
+      }
+    },
+    // 閫変腑鐨勬柟妗�
+    // selectDate(){
+    //     for(let i in this.defArr){
+    //             if(this.projectList[i].CapStus != 'N'){
+    //                 this.schemeDate = this.projectList[i].CapStus
+    //             }else{
+    //                 this.schemeDate = this.rowData.CaptPlanWorkShiftCode
+    //         }
+    //         }
+    // },
+    // 鍙屽嚮璇锋眰鏁版嵁
+    CapacityPlanningOnclickSelect(data) {
+      // capacityPlanning.CapacityPlanningOnclickSelect(data).then((res) =>{
+      //     this.projectList = res.List
+      //     for(let i in this.defArr){
+      //         if(this.defArr[i].name == data.DateTime){
+      //             this.schemeDate = this.defArr[i].key
+      //         }
+      //     }
+      //     this.changeScheme()
+      // })
+    },
+    CapacityPlanningGivePlanSubmit() {
+      const data = {
+        CaptPlanId: this.rowData.CaptPlanId,
+        WkshopCode: this.rowData.CaptPlanWorkShopid,
+        CapUnitCode: this.rowData.CaptPlanDeviceTypeid,
+        CapSetupCode: this.rowData.CaptPlanWorkShiftCode,
+        CaptPlanType: this.rowData.CaptPlanType,
+        WorkList: JSON.stringify(this.defArr)
+      }
+      // capacityPlanning.CapacityPlanningGivePlanSubmit(data).then((res) =>{
+      //      if (res.statusCode == 300) {
+      //         this.$message({
+      //        showClose:true,
+      //             message: res.message,
+      //             type: "error"
+      //         });
+      //         } else {
+      //         this.$message({
+      //        showClose:true,
+      //             message: res.message,
+      //             type: "success"
+      //         });
+      //         this.blur()
+      //         this.CapacityPlanningSearch()
+      //         }
+      // })
+    },
+    CapacityPlanningCalendar() {
+      // capacityPlanning.CapacityPlanningCalendar({CaptPlanId:this.rowData.CaptPlanId}).then((res) =>{
+      //
+      //     for(let i in res.List){
+      //
+      //         if(res.List[i].key == ''){
+      //             res.List[i].key = this.rowData.CaptPlanWorkShiftCode
+      //         }
+      //     }
+      //     this.defArr = res.List
+      // })
+    },
+    closeCapacityPlanningCalendar() {
+      // capacityPlanning.CapacityPlanningCalendar({CaptPlanId:this.rowData.CaptPlanId}).then((res) =>{
+      //     let nameList = []
+      //     for(let i in res.List){
+      //          nameList.push(res.List[i].name)
+      //         if(res.List[i].key == ''){
+      //             res.List[i].key = this.rowData.CaptPlanWorkShiftCode
+      //         }
+      //     }
+      //     for(let i in this.defArr){
+      //         for(let 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
+      //         } else if(this.defArr[i].name == this.changeTime && nameList.indexOf(this.changeTime)==-1){
+      //             this.defArr[i].key = this.rowData.CaptPlanWorkShiftCode
+      //         }
+      //         }
+      //
+      //     }
+      // })
+    },
+    close() {
+      setTimeout(() => {
+        this.isDbl = false
+        this.closeCapacityPlanningCalendar()
+      }, 300)
+    },
+    CapacityPlanningSetupSearch() {
+      // capacityPlanning.CapacityPlanningSetupSearch(this.form).then((res) => {
+      //   this.projectDef = res.rows
+      // })
+    }
+
+  }
+}
+</script>
+<style lang="scss" scoped>
+$main_color: #42b983;
+.pannelTo {
+  position: absolute;
+  z-index: 1000;
+  left: 44.8*7px;
+  top: -5px;
+  width: 45*7px;
+  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+  background: #FFFFFF;
+  margin: 5px 0;
+  border: 1px solid #E4E7ED;
+  -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+  background: #FFFFFF;
+  border-radius: 4px;
+}
+
+.pannelTo_conent {
+  padding: 0 37px 0 37px;
+  height: 276px;;
+}
+
+.pannelTo_footer {
+  overflow: hidden;
+}
+
+.pannelTo_conent ul li {
+  overflow: hidden;
+  text-align: center;
+  margin-bottom: 16px;
+}
+
+.fr {
+  float: right;
+}
+
+.fr_mr {
+  margin-right: 20px;
+}
+
+.fl_ml {
+  margin-left: 20px;
+}
+
+.fl {
+  float: left;
+}
+
+.bt_style {
+  margin-bottom: 10px;
+  margin-left: 10px;
+  margin-right: 15px;
+}
+
+.pannel {
+  width: 45*7px;
+  z-index: 1000;
+  position: absolute;
+  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+  background: #FFFFFF;
+  color: #606266;
+  border: 1px solid #E4E7ED;
+  -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+  background: #FFFFFF;
+  border-radius: 4px;
+  line-height: 30px;
+  margin: 5px 0;
+
+  .pannel-nav {
+    position: relative;
+    text-align: center;
+    // height: 28px;
+    overflow: hidden;
+    margin: 0 13px 0 13px;
+    padding: 25px 0px 10px 0px;
+
+    span {
+      cursor: pointer;
+      user-select: none;
+      padding: 5px;
+      color: #606266;
+      font-weight: 500;
+      vertical-align: top;
+      height: 26px;
+
+      i {
+        vertical-align: top;
+        font-size: 12px;
+        color: #303133;
+      }
+    }
+  }
+
+  .pannel-content {
+    .days {
+      margin-left: 6px;
+    }
+
+    .cell {
+      display: inline-flex;
+      justify-content: center;
+      align-items: center;
+      width: 42.3px;
+      height: 30px;
+      padding: 4px 0;
+      -webkit-box-sizing: border-box;
+      box-sizing: border-box;
+      text-align: center;
+      cursor: pointer;
+      position: relative;
+
+      span {
+        width: 24px;
+        height: 24px;
+        display: block;
+        margin: 0 auto;
+        line-height: 24px;
+        position: absolute;
+        left: 50%;
+        -webkit-transform: translateX(-50%);
+        transform: translateX(-50%);
+        border-radius: 50%;
+        -webkit-tap-highlight-color: transparent;
+        outline: none;
+      }
+
+    }
+
+    .cellDays:hover {
+      color: $main_color;
+    }
+  }
+
+  .pannel-footer {
+    // height: 32px;
+    border-top: 1px solid #E7E7EA;
+    padding: 10px;
+    overflow: hidden;
+    height: 58px;;
+  }
+}
+
+.notCurrentMonth {
+  color: #C0C4CC
+}
+
+.today {
+  color: $main_color;
+  font-weight: bold;
+}
+
+.select {
+  background-color: $main_color;
+  border-radius: 50%;
+  color: #FFFFFF !important;
+}
+
+.dblDateStyle {
+  background-color: #FFCA00 !important;
+  border-radius: 50%;
+  color: #FFFFFF !important;
+}
+
+.pannelTo_nav {
+  padding: 10px 20px 18px 20px;
+  text-align: center
+}
+
+.pannelTo_conent ul {
+  margin: 0;
+  padding: 0;
+  list-style: none;
+}
+
+.yearStyle {
+
+  font-weight: 500;
+  padding: 0 5px;
+  font-size: 14px;
+  line-height: 22px;
+  text-align: center;
+  cursor: pointer;
+  color: #444444;
+}
+
+.input__inner {
+
+  -webkit-appearance: none;
+  background-color: #FFFFFF;
+  background-image: none;
+  border-radius: 4px;
+  border: 1px solid #DCDFE6;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  color: #606266;
+  display: inline-block;
+  font-size: inherit;
+  height: 40px;
+  line-height: 40px;
+  outline: none;
+  padding: 0 15px;
+  -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+  transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
+  width: 100%;
+}
+
+.li_text {
+  font-size: 12px;
+  font-weight: 400;
+  line-height: 17px
+}
+
+.li_text_color {
+  color: #C7C7CB;
+  margin-top: 3px;
+}
+
+.pastDue {
+  background-color: #F5F7FA;
+  opacity: 1;
+  cursor: not-allowed !important;
+  color: #C0C4CC !important;
+}
+
+.top_yes {
+  top: -420px;
+}
+
+.pop_style {
+  font-size: 14px;
+  text-align: center;
+}
+
+.bigText {
+  font-size: 18px;
+  color: #606266;
+  font-weight: 500;
+}
+
+.samllText {
+  color: #C0C4CC;
+  font-size: 13px;
+  vertical-align: bottom;
+}
+
+.pannelTo_title {
+  padding-left: 37px;
+}
+
+.mr5 {
+  margin-right: 5px;
+}
+
+.mt5 {
+  margin-top: 18px;
+}
+
+.mb3 {
+  margin-bottom: 3px;
+}
+
+.mt4 {
+  margin-top: 4px;
+}
+</style>
diff --git a/src/utils/funsdate.js b/src/utils/funsdate.js
new file mode 100644
index 0000000..ee31924
--- /dev/null
+++ b/src/utils/funsdate.js
@@ -0,0 +1,15 @@
+const getYearMonthDay = (date) => {
+  const year = date.getFullYear()
+  const month = date.getMonth()
+  const day = date.getDate()
+
+  return { year, month, day }
+}
+const getDay = (year, month, day) => {
+  return new Date(year, month, day)
+}
+
+export {
+  getYearMonthDay,
+  getDay
+}
diff --git a/src/views/scgl/cngh.vue b/src/views/scgl/cngh.vue
index 342b692..e68cff2 100644
--- a/src/views/scgl/cngh.vue
+++ b/src/views/scgl/cngh.vue
@@ -3,8 +3,6 @@
     <div class="body" :style="{height:mainHeight+'px'}">
       <div class="bodyTopButtonGroup" style="justify-content: space-between">
         <el-button type="primary" icon="el-icon-setting" @click="setting('setting')">璁剧疆</el-button>
-        <!--        <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>-->
-        <!--        <el-button icon="el-icon-download" @click="upload">瀵煎叆</el-button>-->
       </div>
 
       <div class="bodyTopFormGroup">
@@ -17,9 +15,13 @@
         >
           <div class="elForm" style="justify-content: flex-start">
             <el-form-item label-width="70px" label="鐢熶骇杞﹂棿" style=" display: flex;">
-              <el-select v-model="form.OrgType" style="width: 200px" placeholder="璇烽�夋嫨">
+              <el-select
+                v-model="form.workshop"
+                style="width: 200px"
+                placeholder="璇烽�夋嫨"
+              >
                 <el-option
-                  v-for="item in OrgTypeArr"
+                  v-for="item in workshopArr"
                   :key="item.code"
                   :label="item.name"
                   :value="item.code"
@@ -27,12 +29,23 @@
               </el-select>
             </el-form-item>
             <el-form-item label="鐢熶骇鍗曞厓" style=" display: flex;">
-              <el-input v-model="form.OrgName" placeholder="璇疯緭鍏�" style="width: 200px" />
+              <el-select
+                v-model="form.devicetype"
+                style="width: 200px"
+                placeholder="璇烽�夋嫨"
+              >
+                <el-option
+                  v-for="item in devicetypeArr"
+                  :key="item.code"
+                  :label="item.name"
+                  :value="item.code"
+                />
+              </el-select>
             </el-form-item>
             <el-form-item label="鏈夋晥鐘舵��" style=" display: flex;">
-              <el-select v-model="form.OrgType" style="width: 200px" placeholder="璇烽�夋嫨">
+              <el-select v-model="form.stustype" style="width: 200px" placeholder="璇烽�夋嫨">
                 <el-option
-                  v-for="item in OrgTypeArr"
+                  v-for="item in stustypeArr"
                   :key="item.code"
                   :label="item.name"
                   :value="item.code"
@@ -48,21 +61,7 @@
         </el-form>
         <div
           class="bodyTopFormExpand"
-        >
-          <!--          <svg-icon-->
-          <!--            v-show="mouseHoverType==='mouseout'"-->
-          <!--            style="cursor: pointer"-->
-          <!--            :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"-->
-          <!--            @mouseenter="mouseHoverType=$event.type"-->
-          <!--          />-->
-          <!--          <svg-icon-->
-          <!--            v-show="mouseHoverType==='mouseenter'"-->
-          <!--            style="cursor: pointer"-->
-          <!--            :icon-class="!isExpandForm?'doubleDown':'doubleUp'"-->
-          <!--            @click="isExpandForm=!isExpandForm"-->
-          <!--            @mouseout="mouseHoverType=$event.type"-->
-          <!--          />-->
-        </div>
+        />
       </div>
 
       <div class="elTableDiv">
@@ -80,33 +79,33 @@
           @sort-change="sortChange"
         >
           <el-table-column
-            prop="xh"
+            prop="RowNum"
             width="50"
             fixed
             label="搴忓彿"
           />
           <el-table-column
-            prop="sccj"
+            prop="CaptPlanWorkShop"
             label="鐢熶骇杞﹂棿"
             sortable="custom"
             width="160"
           />
           <el-table-column
-            prop="scdy"
+            prop="CaptPlanDeviceType"
             label="鐢熶骇鍗曞厓"
             width="160"
             sortable="custom"
           />
           <el-table-column
-            prop="mrfa"
+            prop="CaptPlanWorkShift"
             label="榛樿鏂规"
             sortable="custom"
             width="240"
           >
             <template slot-scope="{row}">
-              <div style="display: flex;" @click="mrfaSearch(row)">
+              <div style="display: flex;" @click="mrfaSearch(row,'mrfaSearch')">
                 <el-input
-                  v-model="row.mrfa"
+                  v-model="row.CaptPlanWorkShift"
                   readonly
                 />
                 <el-button
@@ -118,60 +117,50 @@
             </template>
           </el-table-column>
           <el-table-column
-            prop="gzrl"
+            prop="CaptPlanShopCalendarList"
             label="宸ヤ綔鏃ュ巻"
             sortable="custom"
           >
             <template slot-scope="{row}">
-              <!--              <div style="width: 100%;" @click="gzrlClick(row)">-->
-              <!--                <el-input-->
-              <!--                  v-model="row.gzrl"-->
-              <!--                  readonly-->
-              <!--                />-->
-              <!--              </div>-->
-              <!--              <div style="width: 100%;" @click="gzrlClick(row)">-->
-              <!--                <el-date-picker-->
-              <!--                  :ref="'datePicker'+row.xh"-->
-              <!--                  v-model="row.gzrl"-->
-              <!--                  :class="'datePicker'+row.xh"-->
-              <!--                  style="width: 100%;"-->
-              <!--                  type="dates"-->
-              <!--                  placeholder="璇烽�夋嫨涓�涓垨澶氫釜鏃ユ湡"-->
-              <!--                  align="left"-->
-              <!--                  format="yyyy-MM-dd"-->
-              <!--                  value-format="yyyy-MM-dd"-->
-              <!--                  :clearable="false"-->
-              <!--                  :picker-options="pickerOptions"-->
-              <!--                  @focus="val=>datePickerFocus(val,row)"-->
-              <!--                  @blur="val=>datePickerBlur(val,row)"-->
-              <!--                  @change="val=>datePickerChange(val,row)"-->
-              <!--                />-->
-              <!--              </div>-->
-              <!--              <date-picker v-model="row.gzrl"-->
-              <!--                           :rowData='row'-->
-              <!--                           :CapacityPlanningSearch='CapacityPlanningSearch'></date-picker>-->
-
+              <date-picker
+                v-model="row.CaptPlanShopCalendarList"
+                :row-data="row"
+                style="width: 100%;"
+                :capacity-planning-search="CapacityPlanningSearch"
+              />
             </template>
           </el-table-column>
           <el-table-column
-            prop="czry"
+            prop="CaptPlanUser"
             label="鍒涘缓浜哄憳"
             sortable="custom"
             width="160"
           />
           <el-table-column
-            prop="czsj"
+            prop="CaptPlanDate"
             width="160"
             label="鍒涘缓鏃堕棿"
             sortable="custom"
           />
 
           <el-table-column
-            prop="yxzt"
+            prop="CaptPlanStus"
             width="160"
             label="鏈夋晥鐘舵��"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.CaptPlanStus==='Y'">
+                <svg-icon icon-class="circleYes" style="margin-right: 2px" />
+                鏈夋晥
+              </div>
+              <div v-else-if="row.CaptPlanStus==='N'">
+                <svg-icon icon-class="circleNo" style="margin-right: 2px" />
+                鏃犳晥
+              </div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
 
           <!--          <el-table-column-->
           <!--            label="鎿嶄綔"-->
@@ -199,33 +188,181 @@
         align="right"
         layout="total,prev, pager, next,sizes"
         popper-class="select_bottom"
-        @pagination="getOrganizationSearch"
+        @pagination="getCapacityPlanningSearch"
       />
     </div>
 
-    <!--    :title="operation==='add'?'鏂板':'缂栬緫'"-->
     <el-dialog
-      title="璁剧疆"
+      :title="operation==='setting'?'璁剧疆':'榛樿鏂规'"
       :visible.sync="dialogVisible"
-      width="800px"
+      width="1280px"
       :close-on-click-modal="false"
-      top="15vh"
+      top="10vh"
       @closed="handleClose"
       @close="handleClose"
     >
-      <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
-        <el-form-item label="缁勭粐缂栫爜" prop="OrgCode">
-          <el-input v-model="dialogForm.OrgCode" :disabled="operation!=='add'" style="width: 200px" />
-        </el-form-item>
-        <el-form-item label="缁勭粐鍚嶇О" prop="OrgName">
-          <el-input v-model="dialogForm.OrgName" style="width: 200px" />
-        </el-form-item>
+      <el-button v-if="operation==='setting'" type="primary" @click="addRow">鏂板</el-button>
+      <div class="elTableDiv">
+        <el-table
+          ref="tableDataDialogRef"
+          class="tableFixedDialog"
+          :data="tableDataDialog"
+          :style="{width: 100+'%',height:(tableHeight-200)+'px'}"
+          border
+          :height="(tableHeight-200)+'px'"
+          :row-class-name="tableRowClassName"
+          highlight-current-row
+          :header-cell-style="this.$headerCellStyle"
+          :cell-style="this.$cellStyle"
+        >
 
-      </el-form>
+          <el-table-column
+            v-if="operation!=='setting'"
+            width="50"
+            fixed
+          >
+            <template slot-scope="{row}">
+              <el-radio
+                v-model="radioSelectedId"
+                :label="row.hx"
+                style="padding-left: 10px;"
+                @change.native="getCurrentRowSource(row.hx)"
+              />
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="famc"
+            label="鏂规鍚嶇О"
+            width="150"
+            fixed
+            show-tooltip-when-overflow
+          >
+            <template slot-scope="{row}">
+              <el-input v-model="row.famc" :disabled="row.isVisible===0" type="text" />
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="gzsc"
+            label="宸ヤ綔鏃堕暱"
+            width="100"
+            show-tooltip-when-overflow
+          />
+
+          <el-table-column
+            prop="time1"
+            label="宸ヤ綔鏃堕棿涓�"
+          >
+            <template slot-scope="{row}">
+              <el-time-picker
+                v-model="row.time1"
+                is-range
+                :disabled="row.isVisible===0"
+                :editable="false"
+                :clearable="false"
+                range-separator="~"
+                start-placeholder="寮�濮�"
+                end-placeholder="缁撴潫"
+                format="HH:mm"
+                @focus="val=>getTime(val,row,'time1')"
+              />
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="time2"
+            label="宸ヤ綔鏃堕棿浜�"
+          >
+            <template slot-scope="{row}">
+              <el-time-picker
+                v-model="row.time2"
+                is-range
+                :disabled="row.isVisible===0"
+                :editable="false"
+                :clearable="false"
+                range-separator="~"
+                start-placeholder="寮�濮�"
+                end-placeholder="缁撴潫"
+                format="HH:mm"
+                @focus="val=>getTime(val,row,'time2')"
+              />
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="time3"
+            label="宸ヤ綔鏃堕棿涓�"
+          >
+            <template slot-scope="{row}">
+              <el-time-picker
+                v-model="row.time3"
+                is-range
+                :editable="false"
+                :disabled="row.isVisible===0"
+                :clearable="false"
+                format="HH:mm"
+                range-separator="~"
+                start-placeholder="寮�濮�"
+                end-placeholder="缁撴潫"
+                @focus="val=>getTime(val,row,'time3')"
+              />
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="time4"
+            label="宸ヤ綔鏃堕棿鍥�"
+          >
+            <template slot-scope="{row}">
+              <el-time-picker
+                v-model="row.time4"
+                is-range
+                format="HH:mm"
+                :editable="false"
+                :disabled="row.isVisible===0"
+                :clearable="false"
+                range-separator="~"
+                start-placeholder="寮�濮�"
+                end-placeholder="缁撴潫"
+                @focus="val=>getTime(val,row,'time4')"
+              />
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="time5"
+            label="宸ヤ綔鏃堕棿浜�"
+          >
+            <template slot-scope="{row}">
+              <el-time-picker
+                v-model="row.time5"
+                :disabled="row.isVisible===0"
+                is-range
+                :editable="false"
+                format="HH:mm"
+                :clearable="false"
+                range-separator="~"
+                start-placeholder="寮�濮�"
+                end-placeholder="缁撴潫"
+                @focus="val=>getTime(val,row,'time5')"
+              />
+            </template>
+          </el-table-column>
+          <el-table-column
+            v-if="operation==='setting'"
+            width="100"
+            fixed="right"
+            label="鎿嶄綔"
+          >
+            <template slot-scope="{row}">
+              <div class="operationClass">
+                <el-button v-if="row.isVisible===0" type="text" @click="editRow(row)">缂栬緫</el-button>
+                <el-button v-if="row.isVisible===0" type="text" @click="delRow(row)">鍒犻櫎</el-button>
+                <el-button v-if="row.isVisible===1" type="text" @click="saveRow(row)">淇濆瓨</el-button>
+              </div>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
       <span slot="footer" class="dialog-footer">
         <div class="footerButton">
-          <el-button @click="dialogVisibleCancel">鍙� 娑�</el-button>
-          <el-button type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>
+          <el-button @click="dialogVisibleCancel">杩� 鍥�</el-button>
+          <el-button v-if="operation!=='setting'" type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>
         </div>
       </span>
     </el-dialog>
@@ -250,11 +387,14 @@
 import ImportPicker from '@/components/ImportPicker'
 import { validateCode } from '@/utils/global'
 import $ from 'jquery'
+import DatePicker from '@/components/DatePicker'
+import { CapacityPlanningSearch } from '@/api/scgl'
+import { DeviceTypeSelect, WorkShopSelect } from '@/api/sbgl'
 
 export default {
   name: 'Zzjg',
   components: {
-    Pagination, ImportPicker
+    Pagination, ImportPicker, DatePicker
   },
   data() {
     return {
@@ -263,73 +403,31 @@
       mainHeight: 0,
       tableHeight: 0,
       form: {
-        OrgCode: '', // 缁勭粐鏋舵瀯浠g爜
-        OrgName: '', // 缁勭粐鏋舵瀯鍚嶇О
-        OrgType: '', // 缁勭粐绫诲瀷
-        UserName: '', // 鍒涘缓浜哄憳
-        createdate: '',
-        prop: 'lm_date', // 鎺掑簭瀛楁
+        workshop: '', // 杞﹂棿缂栫爜
+        devicetype: '', // 鐢熶骇鍗曞厓
+        stustype: '', // 鏈夋晥鐘舵��
+        prop: 'CaptPlanDate', // 鎺掑簭瀛楁
         order: 'desc', // 鎺掑簭瀛楁
         page: 1, // 绗嚑椤�
         rows: 20 // 姣忛〉澶氬皯鏉�
       },
-      OrgTypeArr: [
-        { label: '鏄�', value: 'Y' },
-        { label: '鍚�', value: 'N' }
+      stustypeArr: [
+        { name: '鏈夋晥', code: 'Y' },
+        { name: '鏃犳晥', code: 'N' }
       ],
-
+      workshopArr: [],
+      devicetypeArr: [],
       total: 10,
-      tableData: [
-        {
-          xh: 1,
-          sccj: '鏈哄姞001',
-          scdy: '鏈哄姞浜х嚎C01-L01',
-          mrfa: '',
-          gzrl: '',
-          czry: 'Admin',
-          czsj: '2022-10-12 10:00:00',
-          yxzt: '鏈夋晥'
-        }, {
-          xh: 2,
-          sccj: '鏈哄姞001',
-          scdy: '鏈哄姞浜х嚎C01-L01',
-          mrfa: '',
-          gzrl: '',
-          czry: 'Admin',
-          czsj: '2022-10-12 10:00:00',
-          yxzt: '鏈夋晥'
-        }, {
-          xh: 3,
-          sccj: '鏈哄姞001',
-          scdy: '鏈哄姞浜х嚎C01-L01',
-          mrfa: '',
-          gzrl: '',
-          czry: 'Admin',
-          czsj: '2022-10-12 10:00:00',
-          yxzt: '鏈夋晥'
-        }
-      ],
+      tableData: [],
+
       dialogVisible: false,
       dialogForm: {
-        OrgType: '',
-        OrgCode: '',
-        OrgName: '',
-        SupUnit: ''// 涓婄骇鍗曚綅
+        // OrgType: '',
+        // OrgCode: '',
+        // OrgName: '',
+        // SupUnit: ''// 涓婄骇鍗曚綅
       },
       operation: '',
-      dialogFormRules: {
-        OrgType: [
-          { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
-        ],
-        OrgCode: [
-          { required: true, validator: validateCode, trigger: ['blur', 'change'] }
-        ],
-        OrgName: [
-          { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: ['blur', 'change'] }
-        ]
-
-      },
-
       pickerOptions: {
         disabledDate(time) {
           // return time.getTime() > Date.now();  // 鍙�夊巻鍙插ぉ銆佸彲閫夊綋鍓嶅ぉ銆佷笉鍙�夋湭鏉ュぉ
@@ -339,6 +437,21 @@
         }
       },
       popoverVisible: false,
+      available: null,
+      nextMonth: null,
+
+      tableDataDialog: [
+        // {
+        //   famc: '鏂规涓�',
+        //   gzsc: '8灏忔椂',
+        //   time1: [new Date(2016, 9, 10, 8, 40), new Date(2016, 9, 10, 9, 40)],
+        //   time2: '',
+        //   time3: '',
+        //   time4: '',
+        //   time5: ''
+        // }
+      ],
+      radioSelectedId: '',
 
       title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
       code: '4',
@@ -349,84 +462,132 @@
   watch: {
     shows() {
       if (!this.shows) {
-        this.getOrganizationSearch()
+        this.getCapacityPlanningSearch()
       }
     }
   },
   created() {
-    this.getOrganizationSearch()
+
   },
   mounted() {
     window.addEventListener('resize', this.getHeight)
     this.getHeight()
+
+    this.handleRequest()
+    // this.getDialogData()
   },
   methods: {
-    async getOrganizationSearch() {
+    getCurrentRowSource() {
 
     },
-    mrfaSearch(row) {
+    getDialogData() {
+      let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
+      number = number === 0 ? (10 + Math.random()) : number
+      this.tableDataDialog.push(
+        {
+          hx: 1,
+          famc: '鏂规涓�',
+          gzsc: '8灏忔椂',
+          time1: [],
+          time2: [],
+          time3: [],
+          time4: [],
+          time5: [],
+          number,
+          isVisible: 0
+        }
+      )
+    },
+    getTime(val, row, belong) {
+      const res = this.getDt()
+      if (belong === 'time1') {
+        // row.time1.push(new Date(res.yyyy, res.MM, res.dd, '00', '00'))
+        row.time1 = row.time1.length > 0 ? row.time1 : row.time1.push(new Date())
+      } else if (belong === 'time2') {
+        row.time2 = row.time2.length > 0 ? row.time2 : row.time2.push(new Date())
+      } else if (belong === 'time3') {
+        row.time3 = row.time3.length > 0 ? row.time3 : row.time3.push(new Date())
+      } else if (belong === 'time4') {
+        row.time4 = row.time4.length > 0 ? row.time4 : row.time4.push(new Date())
+      } else if (belong === 'time5') {
+        row.time5 = row.time5.length > 0 ? row.time5 : row.time5.push(new Date())
+      }
+    },
+    getDt() {
+      const dt = new Date()
+
+      const y = dt.getFullYear()
+      const m = (dt.getMonth() + 1 + '').padStart(2, '0')
+      const d = (dt.getDate() + '').padStart(2, '0')
+
+      const hh = (dt.getHours() + '').padStart(2, '0')
+      const mm = (dt.getMinutes() + '').padStart(2, '0')
+      const ss = (dt.getSeconds() + '').padStart(2, '0')
+
+      return { yyyy: y, MM: m, dd: d, hh, mm }
+    },
+    addRow() {
+      this.tableDataDialog.push(
+        {
+          hx: 2,
+          famc: '鏂规xxx',
+          gzsc: '8灏忔椂',
+          time1: [],
+          time2: [],
+          time3: [],
+          time4: [],
+          time5: [],
+          isVisible: 1
+        }
+      )
+    },
+    editRow(row) {
       console.log(row)
-      this.setting()
+      row.isVisible = 1
     },
-    gzrlClick(row) {
-      console.log(row, 1)
-      // console.log($('1'))
+    saveRow(row) {
+      row.isVisible = 0
     },
-    datePickerChange(val, row) {
-      // console.log(this.$refs.datePicker, 8)
-      // console.log(val, 2)
+    delRow(row) {
+
     },
-    datePickerFocus(val, row) {
-      const that = this
-      // console.log(val, 3)
-      // console.log(this.$refs['datePicker' + row.xh], 3333)
-      // console.log(val.pickerVisible, 3)
-      this.$nextTick(() => {
-        // console.log($('.el-date-table'), 9)
-        // console.log($('.el-date-table')[0], 9)
-        // console.log($('.el-date-table')[0].querySelectorAll('.available'), 9)
-        // console.log($('.el-date-table')[0].querySelectorAll('.next-month'), 10)
+    CapacityPlanningSearch() {
 
-        // console.log($('div').wrap($('.el-picker-panel')))
-
-        const available = $('.el-date-table')[0].querySelectorAll('.available')
-        const nextMonth = $('.el-date-table')[0].querySelectorAll('.next-month')
-
-        available.forEach(item => {
-          const date = item.querySelectorAll('div>span')[0].innerText
-          $(item).bind('dblclick', { date }, function(event) {
-            // 闃绘榛樿浜嬩欢
-            event.preventDefault()
-            // 闃绘浜嬩欢鍐掓场
-            event.stopPropagation()
-            console.log(event)
-            console.log(event.data.date)
-            console.log(that.$message.info('鍙屽嚮浜�'))
-            // that.setting()
-          }, {
-            'mouseenter': function() {
-            },
-            'mouseleave': function() {
-            }
-          })
-
-          // $(item).unbind('dblclick').dblclick(e => {
-          //   // console.log(i, 'i-index', index)
-          //   console.log(e, 1)
-          // })
-        })
-
-        // this.$refs['datePicker' + row.xh]
-        // console.log(this.$refs['datePicker' + row.xh].$children[0], 88)
-        // console.log(this.$refs['datePicker' + row.xh].$children[0].nativeInputValue = '2022-10-20', 88)
-        // console.log(this.$refs['datePicker' + row.xh].$children[0].nativeInputValue = '2022-10-20', 88)
-        // console.log(this.$refs['datePicker' + row.xh].$children[0].value = '2022-10-20', 88)
+    },
+    handleRequest() {
+      this.getCapacityPlanningSearch().then(res => {
+        if (res.code === '200') {
+          this.getWorkShopSelect()
+          this.getDeviceTypeSelect()
+        }
       })
     },
-    datePickerBlur(val, row) {
-      console.log(val, 4)
-      console.log(val.pickerVisible, 4)
-      // val.pickerVisible = true
+    async getCapacityPlanningSearch() {
+      const res = await CapacityPlanningSearch(this.form)
+      this.total = res.count
+      this.tableData = res.data
+      this.tableData.forEach(item => {
+        item.CaptPlanShopCalendarList = item.CaiptPlanShopCalendarList ? item.CaptPlanShopCalendarList : []
+      })
+
+      return { code: res.code }
+    },
+    async getWorkShopSelect() {
+      const { data: res } = await WorkShopSelect()
+      this.workshopArr = res
+    },
+    async getDeviceTypeSelect() {
+      const { data: res } = await DeviceTypeSelect()
+      this.devicetypeArr = res
+    },
+    mrfaSearch(row, operation) {
+      console.log(row)
+      this.operation = operation
+      this.dialogVisible = true
+
+      this.$nextTick(() => {
+        this.$refs.tableDataDialogRef.doLayout()
+      })
     },
     // 鎺掑簭鏀瑰彉鏃�
     sortChange({ column, prop, order }) {
@@ -439,11 +600,11 @@
       }
       this.form.order = order
       this.form.prop = prop
-      this.getOrganizationSearch()
+      this.getCapacityPlanningSearch()
     },
     // 鏌ヨ
     search() {
-      this.getOrganizationSearch()
+      this.getCapacityPlanningSearch()
     },
     // 瀵煎叆鎸夐挳
     upload() {
@@ -455,15 +616,18 @@
     },
     // 閲嶇疆
     reset() {
-      this.form.OrgCode = ''
-      this.form.OrgName = ''
-      this.form.OrgType = ''
-      this.form.UserName = ''
-      this.getOrganizationSearch()
+      this.form.workshop = ''
+      this.form.devicetype = ''
+      this.form.stustype = ''
+      this.getCapacityPlanningSearch()
     },
     setting(operation) {
       this.operation = operation
       this.dialogVisible = true
+
+      this.$nextTick(() => {
+        this.$refs.tableDataDialogRef.doLayout()
+      })
     },
     // 鏂板鎸夐挳
     add(operation) {
@@ -494,7 +658,7 @@
             if (this.form.page > 1 && this.tableData.length === 1) {
               this.form.page--
             }
-            this.getOrganizationSearch()
+            this.getCapacityPlanningSearch()
           }
         })
       }).catch(() => {
@@ -515,25 +679,7 @@
     },
     // 瀵硅瘽妗嗙‘璁�
     dialogVisibleConfirm() {
-      this.$refs.dialogForm.validate(valid => {
-        if (valid) {
-          const data = {
-            OrganCode: this.dialogForm.OrgCode,
-            OrganName: this.dialogForm.OrgName,
-            OperType: this.operation === 'add' ? 'Add' : 'Update',
-            Operator: getCookie('admin')
-          }
-          AddUpdateOrganization(data).then(res => {
-            if (res.code === '200') {
-              this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
-              this.dialogVisible = false
-              this.getOrganizationSearch()
-            } else {
-              this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
-            }
-          })
-        }
-      })
+      this.dialogVisible = false
     },
     // 鑾峰彇椤甸潰楂樺害
     getHeight() {
@@ -590,7 +736,8 @@
 }
 
 ::v-deep .el-dialog__body {
-  padding: 20px 100px !important;
+  //padding: 20px 100px !important;
+  padding: 20px !important;
 }
 
 ::v-deep .dialogVisibleRoles .el-dialog__body {
@@ -666,6 +813,20 @@
   }
 
 }
+
+.tableFixedDialog {
+  ::v-deep .el-input__icon {
+    line-height: 27px;
+  }
+
+  ::v-deep .el-range-separator {
+    line-height: 27px;
+  }
+
+  ::v-deep .el-radio__label {
+    display: none;
+  }
+}
 </style>
 <style>
 
diff --git a/src/views/zzmx/wlqd.vue b/src/views/zzmx/wlqd.vue
index ff35bc9..35783d0 100644
--- a/src/views/zzmx/wlqd.vue
+++ b/src/views/zzmx/wlqd.vue
@@ -678,7 +678,6 @@
     handleRequest() {
       this.getBoIventorySelect().then(res => {
         if (res.code === '200') {
-          // this.getPartSelect()
           this.getStockTypeSelect()
         }
       })

--
Gitblit v1.9.3