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