From fc06215c58fef8431e9574235680bffd840b507a Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期六, 11 五月 2024 16:55:44 +0800
Subject: [PATCH] 1.生产工单新增预计开工日期、预计完工日期

---
 src/components/DateType/index.vue        |   62 ++++++++----
 src/views/workOrder/produceOrderList.vue |  106 +++++++++++----------
 src/views/workOrder/workOrderList.vue    |   84 +++++++++++-----
 3 files changed, 156 insertions(+), 96 deletions(-)

diff --git a/src/components/DateType/index.vue b/src/components/DateType/index.vue
index fae4de8..f3c5c3e 100644
--- a/src/components/DateType/index.vue
+++ b/src/components/DateType/index.vue
@@ -112,34 +112,44 @@
         @show="datatypePopoverIsShow=true"
       >
         <div class="popoverList">
-          <div class="popoverListItem2">
+          <div v-for="item in datatypeList" :key="item.code" class="popoverListItem2">
             <el-button
-              :class="datatype==='PS'?'selectButton':''"
-              @click="datatypeClick('PS')"
-            >棰勮寮�宸ユ棩鏈�
+              :class="datatype===item.code?'selectButton':''"
+              @click="datatypeClick(item.code)"
+            >{{ item.name }}
             </el-button>
           </div>
-          <div class="popoverListItem2">
-            <el-button
-              :class="datatype==='PE'?'selectButton':''"
-              @click="datatypeClick('PE')"
-            >棰勮瀹屽伐鏃ユ湡
-            </el-button>
-          </div>
-          <div class="popoverListItem2">
-            <el-button
-              :class="datatype==='ED'?'selectButton':''"
-              @click="datatypeClick('ED')"
-            >棰勮浜や粯鏃ユ湡
-            </el-button>
-          </div>
+
+          <!--          <div class="popoverListItem2">-->
+          <!--            <el-button-->
+          <!--              :class="datatype==='PS'?'selectButton':''"-->
+          <!--              @click="datatypeClick('PS')"-->
+          <!--            >棰勮寮�宸ユ棩鏈�-->
+          <!--            </el-button>-->
+          <!--          </div>-->
+          <!--          <div class="popoverListItem2">-->
+          <!--            <el-button-->
+          <!--              :class="datatype==='PE'?'selectButton':''"-->
+          <!--              @click="datatypeClick('PE')"-->
+          <!--            >棰勮瀹屽伐鏃ユ湡-->
+          <!--            </el-button>-->
+          <!--          </div>-->
+          <!--          <div class="popoverListItem2">-->
+          <!--            <el-button-->
+          <!--              :class="datatype==='ED'?'selectButton':''"-->
+          <!--              @click="datatypeClick('ED')"-->
+          <!--            >棰勮浜や粯鏃ユ湡-->
+          <!--            </el-button>-->
+          <!--          </div>-->
         </div>
 
         <div
           slot="reference"
           style="color: #a7a7a7;font-weight: 600;  font-size:14px;width: 100px;text-align: center;
                 font-family:'Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif';"
-        > {{ datatype === 'PS' ? '棰勮寮�宸ユ棩鏈�' : datatype === 'PE' ? '棰勮瀹屽伐鏃ユ湡' : '棰勮浜や粯鏃ユ湡' }}
+        >
+          {{ datatypeList.find(i=>i.code===datatype).name }}
+          <!--          {{ datatype === 'PS' ? '棰勮寮�宸ユ棩鏈�' : datatype === 'PE' ? '棰勮瀹屽伐鏃ユ湡' : '棰勮浜や粯鏃ユ湡' }}-->
         </div>
 
       </el-popover>
@@ -174,7 +184,7 @@
       default() {
         return false
       }
-    }
+    },
     // cycleTimePopoverIsShow: {
     //   type: Boolean,
     //   default() {
@@ -199,6 +209,18 @@
     //     return 'ED'
     //   }
     // }
+    datatypeList: {
+      type: Array,
+      default() {
+        return [
+          { code: 'PS', name: '棰勮寮�宸ユ棩鏈�' },
+          { code: 'PE', name: '棰勮瀹屽伐鏃ユ湡' },
+          { code: 'ED', name: '棰勮浜や粯鏃ユ湡' }
+          // { code: 'CT', name: '鍒涘缓鏃ユ湡' }
+        ]
+      }
+    }
+
   },
   data() {
     return {
diff --git a/src/views/workOrder/produceOrderList.vue b/src/views/workOrder/produceOrderList.vue
index e8e656e..84e649b 100644
--- a/src/views/workOrder/produceOrderList.vue
+++ b/src/views/workOrder/produceOrderList.vue
@@ -438,8 +438,8 @@
       v-el-drag-dialog
       :title="operation==='add'?'鏂板':'涓嬭揪'"
       :visible.sync="dialogVisible"
-      width="860px"
-      top="15vh"
+      width="900px"
+      top="12vh"
       :close-on-click-modal="false"
       @closed="handleClose"
       @close="handleClose"
@@ -497,6 +497,8 @@
             style="width: 200px"
           />
         </el-form-item>
+        <!--        :picker-options="pickerOptions"-->
+
         <el-form-item label="棰勮浜や粯鏃ユ湡" prop="saleOrderDeliveryDate">
           <el-date-picker
             v-model="dialogForm.saleOrderDeliveryDate"
@@ -504,12 +506,44 @@
             size="mini"
             :clearable="false"
             class="dateMini"
-            :picker-options="pickerOptions"
             format="yyyy-MM-dd"
+            style="width: 200px"
             placeholder="閫夋嫨鏃ユ湡"
             :disabled="dialogForm.saleOrderDeliveryDateIsDisabled"
           />
         </el-form-item>
+
+        <div style="display: flex">
+          <el-form-item label="棰勮寮�宸ユ棩鏈�" prop="" style="display: flex">
+            <el-date-picker
+              v-model="dialogForm.paystartdate"
+              type="date"
+              size="mini"
+              style="width: 200px"
+              :clearable="false"
+              class="dateMini"
+              format="yyyy-MM-dd"
+              value-format="yyyy-MM-dd"
+              placeholder="閫夋嫨鏃ユ湡"
+            />
+          </el-form-item>
+
+          <el-form-item label="棰勮瀹屽伐鏃ユ湡" prop="" style="display: flex">
+            <el-date-picker
+              v-model="dialogForm.payenddate"
+              type="date"
+              size="mini"
+              style="width: 200px"
+              :clearable="false"
+              class="dateMini"
+              format="yyyy-MM-dd"
+              value-format="yyyy-MM-dd"
+              placeholder="閫夋嫨鏃ユ湡"
+            />
+          </el-form-item>
+
+        </div>
+
       </el-form>
       <span slot="footer" class="dialog-footer">
         <div class="footerButton">
@@ -541,7 +575,6 @@
 } from '@/api/WorkOrder'
 import { SeaveSearchErpOrder } from '@/api/ErpSyncMes'
 import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
-import moment from 'moment'
 import DateType from '@/components/DateType'
 
 const SER_HZ = /^[\u4e00-\u9fa5]+$/
@@ -625,7 +658,10 @@
 
         clerkuser: '', // 閿�鍞笟鍔″憳
 
-        saleOrderDeliveryDate: '' // 棰勮浜や粯鏃ユ湡
+        saleOrderDeliveryDate: '', // 棰勮浜や粯鏃ユ湡
+
+        paystartdate: '', //   棰勮寮�宸ユ棩鏈�
+        payenddate: ''//  棰勮瀹屽伐鏃ユ湡
       },
       operation: '',
       dialogFormRules: {
@@ -647,49 +683,9 @@
 
       },
       pickerOptions: {
-        shortcuts: [
-          {
-            text: '褰撳ぉ',
-            onClick(picker) {
-              const end = new Date()
-              const start = new Date()
-              start.setTime(start.getTime())
-              picker.$emit('pick', [start, end])
-            }
-          }, {
-            text: '杩戜笁澶�',
-            onClick(picker) {
-              const end = new Date()
-              const start = new Date()
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 3)
-              console.log([start, end], '[start, end]')
-              picker.$emit('pick', [start, end])
-            }
-          }, {
-            text: '杩戜竴鍛�',
-            onClick(picker) {
-              const end = new Date()
-              const start = new Date()
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
-              picker.$emit('pick', [start, end])
-            }
-          }, {
-            text: '杩戜竴涓湀',
-            onClick(picker) {
-              const end = new Date()
-              const start = new Date()
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
-              picker.$emit('pick', [start, end])
-            }
-          }, {
-            text: '杩戜笁涓湀',
-            onClick(picker) {
-              const end = new Date()
-              const start = new Date()
-              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
-              picker.$emit('pick', [start, end])
-            }
-          }]
+        disabledDate(time) {
+          return time.getTime() < Date.now() - 8.64e7
+        }
       },
       multipleSelection: []
 
@@ -714,7 +710,6 @@
   methods: {
 
     DateTypeChange(value) {
-      console.log('asd', value)
       this.form.datatype = value
     },
     cycleTimeChange(val) {
@@ -922,7 +917,10 @@
             'relse_qty': i.qty,
             'saleordercode': i.saleOrderCode,
             // 'saleOrderDeliveryDate': i.saleOrderDeliveryDate
-            'saleOrderDeliveryDate': handleDatetime(new Date()) + ' 00:00:00'
+            'saleOrderDeliveryDate': handleDatetime(new Date()) + ' 00:00:00',
+
+            'paystartdate': i.planstartdate,
+            'payenddate': i.planenddate
           })
         })
         // console.log(JSON.parse(JSON.stringify(data)))
@@ -982,6 +980,9 @@
         this.dialogForm.ordernum = 1
         this.dialogForm.relse_qty = row.relse_qty
         this.dialogForm.clerkuser = row.clerkuser
+
+        this.dialogForm.paystartdate = row.planstartdate
+        this.dialogForm.payenddate = row.planenddate
       })
     },
     // 瀵硅瘽妗嗗叧闂簨浠�
@@ -1006,6 +1007,9 @@
         markqty: '', // 涓嬪崟鏁伴噺
         ordernum: '', // 涓嬪崟鍗曟暟
         relse_qty: '', // 宸蹭笅鍗曟暟閲�
+
+        payenddate: '', // 棰勮瀹屽伐鏃ユ湡
+        paystartdate: '', // 棰勮寮�宸ユ棩鏈�
 
         saleOrderDeliveryDate: '' // 棰勮浜や粯鏃ユ湡
       }
@@ -1044,6 +1048,8 @@
             'erpqty': this.dialogForm.erpqty,
             'markqty': this.dialogForm.markqty,
             'ordernum': this.dialogForm.ordernum,
+            'payenddate': this.dialogForm.payenddate,
+            'paystartdate': this.dialogForm.paystartdate,
             'relse_qty': this.dialogForm.relse_qty,
             'saleOrderDeliveryDate': handleDatetime(this.dialogForm.saleOrderDeliveryDate) + ' 00:00:00'
           }
diff --git a/src/views/workOrder/workOrderList.vue b/src/views/workOrder/workOrderList.vue
index af688a1..f09761b 100644
--- a/src/views/workOrder/workOrderList.vue
+++ b/src/views/workOrder/workOrderList.vue
@@ -90,26 +90,14 @@
             <el-form-item v-show="isExpandForm" label="鍒涘缓浜哄憳" style=" display: flex;">
               <el-input v-model="form.creatuser" style="width: 200px" placeholder="璇疯緭鍏�" />
             </el-form-item>
-            <el-form-item v-show="isExpandForm" label="鍒涘缓鏃堕棿" style=" display: flex;">
-              <!--              <el-date-picker-->
-              <!--                v-model="form.createdate"-->
-              <!--                type="daterange"-->
-              <!--                :clearable="false"-->
-              <!--                range-separator="~"-->
-              <!--                start-placeholder="寮�濮嬫棩鏈�"-->
-              <!--                end-placeholder="缁撴潫鏃ユ湡"-->
-              <!--                size="mini"-->
-              <!--              />-->
-              <el-date-picker
-                v-model="form.createdate"
-                type="date"
-                size="mini"
-                :clearable="false"
-                class="dateMini"
-                format="yyyy-MM-dd"
-                placeholder="閫夋嫨鏃ユ湡"
-              />
-            </el-form-item>
+            <DateType
+              ref="DateTypeRef"
+              :is-expand-form="isExpandForm"
+              style="display:flex;justify-content: center;align-items: center;position: relative"
+              :datatype-list="datatypeList"
+              @DateTypeChange="DateTypeChange"
+              @cycleTimeChange="cycleTimeChange"
+            />
           </div>
 
           <div
@@ -283,6 +271,28 @@
           >
             <template slot-scope="{row}">
               <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="plan_startdate"
+            label="棰勮寮�宸ユ棩鏈�"
+            sortable="custom"
+            width="130"
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div>
+              <div v-else>/</div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="plan_enddate"
+            label="棰勮瀹屽伐鏃ユ湡"
+            sortable="custom"
+            width="130"
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.plan_enddate">{{ row.plan_enddate.substring(0, 11) }}</div>
               <div v-else>/</div>
             </template>
           </el-table-column>
@@ -1990,11 +2000,11 @@
 import Sortable from 'sortablejs'
 import ElDragSelect from '@/components/DragSelect'
 import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui
-
+import DateType from '@/components/DateType'
 export default {
   name: 'WorkOrderList',
   components: {
-    Pagination, ElDragSelect
+    Pagination, ElDragSelect, DateType
   },
   directives: { elDragDialog, waves },
   data() {
@@ -2017,7 +2027,9 @@
         partname: '', // 浜у搧鍚嶇О
         partspec: '', // 浜у搧瑙勬牸
         creatuser: '', // 鍒涘缓浜哄憳
-        createdate: '', // 鍒涘缓鏃堕棿
+        // createdate: '', // 鍒涘缓鏃堕棿
+        datatype: 'ED', // 鏃ユ湡绫诲瀷(璁″垝寮�宸�(PS)銆佽鍒掑畬宸�(PE)銆侀璁′氦浠�(ED)銆佸垱寤烘棩鏈�(CT))
+        timeValue: [], // 鏌ヨ鏃ユ湡
         prop: 'lm_date', // 鎺掑簭瀛楁
         order: 'desc', // 鎺掑簭瀛楁
         page: 1, // 绗嚑椤�
@@ -2240,7 +2252,14 @@
       stepSelectArr: [], // 宸ュ簭涓嬫媺鏁版嵁
       stepSelectedValue: [], // 涓嬫媺閫変腑鍊�
 
-      multipleSelection: []
+      multipleSelection: [],
+
+      datatypeList: [
+        { code: 'PS', name: '棰勮寮�宸ユ棩鏈�' },
+        { code: 'PE', name: '棰勮瀹屽伐鏃ユ湡' },
+        { code: 'ED', name: '棰勮浜や粯鏃ユ湡' },
+        { code: 'CT', name: '宸ュ崟鍒涘缓鏃ユ湡' }
+      ]
     }
   },
   watch: {
@@ -2276,6 +2295,12 @@
     // })
   },
   methods: {
+    DateTypeChange(value) {
+      this.form.datatype = value
+    },
+    cycleTimeChange(val) {
+      this.form.timeValue = val
+    },
     setSort() {
       const el = this.$refs.stepTableDataRef.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0]
       this.sortable = Sortable.create(el, {
@@ -2328,7 +2353,9 @@
         sourceorder: this.form.sourceorder, // 婧愬崟鍗曞彿
         saleordercode: this.form.saleordercode, // 閿�鍞鍗�
         ordertype: this.form.ordertype, // 鍗曟嵁绫诲瀷
-        createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // 鍒涘缓鏃堕棿
+        datatype: this.form.datatype,
+        searchdate: this.form.timeValue.join('~'),
+        // createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // 鍒涘缓鏃堕棿
         prop: this.form.prop, // 鎺掑簭瀛楁
         order: this.form.order, // 鎺掑簭瀛楁
         page: this.form.page, // 绗嚑椤�
@@ -2400,7 +2427,12 @@
       this.form.creatuser = ''
       this.form.sourceorder = ''
       this.form.ordertype = ''
-      this.form.createdate = ''
+      // this.form.createdate = ''
+
+      this.form.timeValue = []
+      this.cycleTime = null
+      this.$refs.DateTypeRef.clearValue()
+
       this.getMesOrderSearch()
     },
     // 鏂板鎸夐挳

--
Gitblit v1.9.3