From 8b43954926db6b4df6a61ab6e04d6cb11189069d Mon Sep 17 00:00:00 2001
From: 吴健 <14790700720@163.com>
Date: 星期二, 15 四月 2025 08:54:08 +0800
Subject: [PATCH] add-415

---
 jcdm-ui/src/views/main/om/productionOrde/index.vue |  551 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 301 insertions(+), 250 deletions(-)

diff --git a/jcdm-ui/src/views/main/om/productionOrde/index.vue b/jcdm-ui/src/views/main/om/productionOrde/index.vue
index e9abfb2..b03d33e 100644
--- a/jcdm-ui/src/views/main/om/productionOrde/index.vue
+++ b/jcdm-ui/src/views/main/om/productionOrde/index.vue
@@ -1,12 +1,25 @@
 <template>
   <div class="app-container">
+    <div v-if="!showDetailFlag">
     <el-card class="box-card">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label-width="100" label="鐢熶骇閫氱煡鍗�" prop="productName">
+      <el-form-item label-width="100" label="鐢熶骇閫氱煡鍗�" prop="productionNotice">
         <el-input v-model="queryParams.productionNotice" placeholder="璇疯緭鍏ョ敓浜ч�氱煡鍗�" clearable @keyup.enter.native="handleQuery"/>
+      </el-form-item>
+      <el-form-item label-width="100" label="宸ュ巶缂栧彿" prop="workshopCode">
+        <el-select v-model="queryParams.workshopCode" placeholder="璇烽�夋嫨宸ュ巶缂栧彿" clearable>
+          <el-option
+            v-for="dict in dict.type.factory_code"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"/>
+        </el-select>
       </el-form-item>
       <el-form-item label-width="80" label="鐢熶骇璁㈠崟" prop="workOrderNo">
         <el-input v-model="queryParams.workOrderNo" placeholder="璇疯緭鍏ョ敓浜ц鍗�" clearable @keyup.enter.native="handleQuery"/>
+      </el-form-item>
+      <el-form-item style="margin-left: 14px" label="浜у搧缂栧彿" prop="productCode">
+        <el-input v-model="queryParams.productCode" placeholder="璇疯緭鍏ヤ骇鍝佺紪鍙�" clearable @keyup.enter.native="handleQuery"/>
       </el-form-item>
 <!--      <el-form-item label="浜у搧鍚嶇О" prop="productName">-->
 <!--        <el-input v-model="queryParams.productName" placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�" clearable @keyup.enter.native="handleQuery"/>-->
@@ -27,26 +40,17 @@
       </el-form-item>
     </el-form>
     <el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="advancedShowSearch" label-width="68px">
-      <el-form-item style="margin-left: 14px" label="浜у搧缂栧彿" prop="productCode">
-        <el-input v-model="queryParams.productCode" placeholder="璇疯緭鍏ヤ骇鍝佺紪鍙�" clearable @keyup.enter.native="handleQuery"/>
+      <el-form-item label="鏈哄瀷" prop="typeZ">
+        <el-select v-model="queryParams.typeZ" placeholder="璇烽�夋嫨鏈哄瀷" clearable>
+          <el-option
+            v-for="dict in typeSelectList"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"/>
+        </el-select>
       </el-form-item>
-      <el-form-item label="璁㈠崟缂栧彿" prop="salesOrderCode">
-        <el-input v-model="queryParams.salesOrderCode" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" clearable @keyup.enter.native="handleQuery"/>
-      </el-form-item>
-      <el-form-item label="杞﹂棿缂栧彿" prop="workshopCode">
-        <el-input v-model="queryParams.workshopCode" placeholder="璇疯緭鍏ヨ溅闂寸紪鍙�" clearable @keyup.enter.native="handleQuery"/>
-      </el-form-item>
-      <el-form-item label="浜х嚎缂栧彿" prop="lineCode">
-        <el-input v-model="queryParams.lineCode" placeholder="璇疯緭鍏ヤ骇绾跨紪鍙�" clearable @keyup.enter.native="handleQuery"/>
-      </el-form-item>
-      <el-form-item style="margin-left: 7px" label-width="80" label="浜у搧BOM" prop="bomCode">
-        <el-input v-model="queryParams.bomCode" placeholder="璇疯緭鍏ヤ骇鍝丅OM" clearable @keyup.enter.native="handleQuery"/>
-      </el-form-item>
-      <el-form-item label="宸ヨ壓娴佺▼" prop="routeCode">
-        <el-input v-model="queryParams.routeCode" placeholder="璇疯緭鍏ュ伐鑹烘祦绋�" clearable @keyup.enter.native="handleQuery"/>
-      </el-form-item>
-      <el-form-item label="宸ヨ壓閰嶆柟" prop="recipeCode">
-        <el-input v-model="queryParams.recipeCode" placeholder="璇疯緭鍏ュ伐鑹洪厤鏂�" clearable @keyup.enter.native="handleQuery"/>
+      <el-form-item label-width="130" label="鍙戝姩鏈哄彿" prop="engineNo">
+        <el-input v-model="queryParams.engineNo" placeholder="璇疯緭鍏ュ彂鍔ㄦ満鍙�" clearable @keyup.enter.native="handleQuery"/>
       </el-form-item>
     </el-form>
     </el-card>
@@ -69,7 +73,7 @@
           plain
           icon="el-icon-edit"
           size="mini"
-          :disabled="single"
+          :disabled="multiple"
           @click="handleUpdate"
           v-hasPermi="['om:productionOrde:edit']"
         >淇敼</el-button>
@@ -95,31 +99,12 @@
           v-hasPermi="['om:productionOrde:export']"
         >瀵煎嚭</el-button>
       </el-col>
-<!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--          type="warning"-->
-<!--          plain-->
-<!--          icon="el-icon-upload2"-->
-<!--          :disabled="move"-->
-<!--          size="mini"-->
-<!--          @click="moveUp(val => val, 'up')"-->
-<!--        >涓婄Щ</el-button>-->
-<!--      </el-col>-->
-<!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--          type="warning"-->
-<!--          plain-->
-<!--          icon="el-icon-download"-->
-<!--          size="mini"-->
-<!--          :disabled="move"-->
-<!--          @click="moveUp(val => val, 'down')"-->
-<!--        >涓嬬Щ</el-button>-->
-<!--      </el-col>-->
+
       <el-col :span="1.5">
         <el-button
-          type="warning"
+          type="success"
           plain
-          icon="el-icon-download"
+          icon="el-icon-wind-power"
           size="mini"
           @click="getProductionNotice"
         >鎺ユ敹</el-button>
@@ -128,12 +113,21 @@
         <el-button
           type="primary"
           plain
-          icon="el-icon-createUpdate"
+          icon="el-icon-edit"
           size="mini"
-          :disabled="single"
+          :disabled="create"
           @click="CreatehandleUpdate"
-          v-hasPermi="['om:productionOrde:createUpdate']"
         >鐢熸垚</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :disabled="!single"
+          @click="goToPage"
+        >寮�濮嬩綔涓�</el-button>
       </el-col>
 
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -141,96 +135,42 @@
 
       <el-table border v-loading="loading" :data="productionOrdeList" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55" align="center" />
-        <el-table-column label="鐢熶骇閫氱煡鍗曞彿" width="160" align="center" prop="productionNotice">
+        <el-table-column label="鐢熶骇閫氱煡鍗�" width="120" align="center" prop="productionNotice">
         </el-table-column>
-        <el-table-column label="鐢熶骇璁㈠崟" width="160" align="center">
+        <el-table-column label="鐢熶骇璁㈠崟" width="140" align="center">
           <template slot-scope="scope">
             <router-link :to="{path: '/main/orderScheduling-data/index/', query: {workOrderNo: scope.row.workOrderNo} }" class="link-type">
               <span>{{ scope.row.workOrderNo }}</span>
             </router-link>
           </template>
         </el-table-column>
-        <el-table-column label="鏈哄瀷" width="160" align="center" prop="typeZ">
+        <el-table-column label="鏈哄瀷" width="100" align="center" prop="typeZ">
         </el-table-column>
+
         <el-table-column label="闇�姹傛暟閲�" align="center" prop="planQty">
         </el-table-column>
+
         <el-table-column label="浜у搧缂栧彿" width="150" align="center" prop="productCode">
         </el-table-column>
-<!--        <el-table-column label="瀹為檯鏁伴噺" width="160" align="center" prop="actualQty">-->
-<!--        </el-table-column>-->
+
+        <el-table-column label="寮�宸ユ棩鏈�" width="120" align="center" prop="demandDate">
+        </el-table-column>
+
         <el-table-column label="宸ュ崟鐘舵��" align="center" prop="orderStatus">
           <template slot-scope="scope">
             <dict-tag :options="dict.type.order_state" :value="scope.row.orderStatus"/>
           </template>
         </el-table-column>
-<!--        <el-table-column label="宸ュ巶" align="center" prop="workshopCode">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column label="浠撳簱" align="center">-->
-<!--        </el-table-column>-->
-        <el-table-column label="浜х嚎" align="center" prop="lineCode">
+
+        <el-table-column label="宸ュ巶缂栧彿" align="center" prop="workshopCode">
         </el-table-column>
-<!--        <el-table-column label="璁㈠崟绫诲瀷" align="center">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column label="ZWS" align="center">-->
-<!--        </el-table-column>-->
 
-<!--        <el-table-column label="宸ヨ壓娴佺▼" width="140" align="center" prop="routeCode">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column label="浜у搧BOM" width="140" align="center" prop="bomCode">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column label="宸ヨ壓閰嶆柟" width="140" align="center" prop="recipeCode">-->
-<!--        </el-table-column>-->
-
-<!--        <el-table-column label="瀹為檯鏁伴噺" align="center" prop="actualQty">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column label="瀹為檯涓婄嚎鏁伴噺" width="100" align="center" prop="actualOnlineQty">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column label="闇�姹傛棩鏈�" align="center" prop="demandDate" width="180">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column label="璁″垝寮�濮嬫椂闂�" width="160" align="center" prop="planStartTime">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column label="璁″垝缁撴潫鏃堕棿" width="160" align="center" prop="planEndTime">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column label="瀹為檯寮�濮嬫椂闂�" width="160" align="center" prop="actualStartTime">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column label="瀹為檯缁撴潫鏃堕棿" width="160" align="center" prop="actualEndTime">-->
-<!--        </el-table-column>-->
-
-<!--        <el-table-column width="160" label="鏇存柊鏃堕棿" align="center" prop="updateTime">-->
-<!--        </el-table-column>-->
-        <el-table-column label="閫氱煡鍗曞埗鍗曚汉" width="80" align="center" prop="createUser">
+        <el-table-column label="鍒跺崟浜�" width="80" align="center" prop="createUser">
         </el-table-column>
-        <el-table-column width="160" label="閫氱煡鐢熸垚鏃ユ湡" align="center" prop="createTime">
+        <el-table-column width="160" label="鎺ユ敹鏃ユ湡" align="center" prop="createTime">
         </el-table-column>
         <el-table-column label="鎴愬搧鎻忚堪" width="320" align="center" prop="productName">
         </el-table-column>
-<!--        <el-table-column label="淇敼浜�" width="80" align="center" prop="updateUser">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column label="澶囨敞" width="100" align="center" prop="remarks">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column label="娴佹按鍙�" align="center" prop="streamNumber">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column label="瀹㈡埛" width="80" align="center" prop="custom">-->
-<!--        </el-table-column>-->
-<!--        <el-table-column fixed="right" width="350" label="鎿嶄綔" align="center" class-name="small-padding fixed-width">-->
-<!--          <template slot-scope="scope">-->
-<!--            &lt;!&ndash;  宸ュ崟鐘舵�侊紙1鍒涘缓銆�2宸插彂甯冦��3鐢熶骇涓��4宸插喕缁撱��5宸插畬宸ャ��6宸插叧闂級 &ndash;&gt;-->
-<!--            <el-button type="success" :disabled="scope.row.orderStatus !== '1'"  style="width: 72px" plain @click="handleCommand('3',scope.row.id)" size="mini">-->
-<!--              寮�濮�</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '2' && scope.row.orderStatus !== '3'" v-if="scope.row.orderStatus !== '2'&&  scope.row.orderStatus !== '4'" plain @click="handleCommand('4',scope.row.id)" type="warning" size="mini">-->
-<!--              鍐荤粨</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '4'" v-if="scope.row.orderStatus === '4'" plain @click="handleCommand('3',scope.row.id)" type="warning" size="mini">-->
-<!--              瑙e喕</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '1'" plain @click="handleCommand('6',scope.row.id)" v-if="scope.row.orderStatus === '1'||scope.row.orderStatus === '3'||scope.row.orderStatus === '4'||scope.row.orderStatus === '5'" type="danger" size="mini">-->
-<!--              鍏抽棴</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">-->
-<!--              鍚敤</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '4'||scope.row.orderStatus === '6'" v-if="scope.row.orderStatus !== '5'" @click="handleCommand('5',scope.row.id)" type="success" size="mini">-->
-<!--              瀹屾垚</el-button>-->
-<!--            <el-button style="width: 72px" :disabled="scope.row.orderStatus === '5'" v-if="scope.row.orderStatus === '5'" type="success" size="mini">宸插畬宸�</el-button>            <el-button style="width: 72px" :disabled="scope.row.orderStatus !== '6'" plain @click="handleCommand('1',scope.row.id)" v-if="scope.row.orderStatus === '6' " type="success" size="mini">-->
-<!--            鍚敤</el-button>-->
-<!--          </template>-->
-<!--        </el-table-column>-->
       </el-table>
     </el-card>
 
@@ -249,94 +189,36 @@
         <i class="el-icon-s-order"></i>
         {{titleName}}
       </span>
-      <el-form ref="form" inline :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="宸ュ崟鍙�" prop="workOrderNo">
-          <el-input v-model="form.workOrderNo" placeholder="璇疯緭鍏ョ敓浜ц鍗�" />
+      <el-form ref="form" inline :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="鐢熶骇閫氱煡鍗�" prop="productionNotice">
+          <el-input v-model="form.productionNotice" :disabled="editFlag" placeholder="璇疯緭鍏ョ敓浜ч�氱煡鍗�" />
         </el-form-item>
-        <el-form-item label="璁㈠崟缂栧彿" prop="salesOrderCode">
-          <el-input v-model="form.salesOrderCode" placeholder="璇疯緭鍏ヨ鍗曠紪鍙�" />
+        <el-form-item label="鐢熶骇璁㈠崟" prop="workOrderNo">
+          <el-input v-model="form.workOrderNo" :disabled="editFlag" placeholder="璇疯緭鍏ョ敓浜ц鍗�" />
         </el-form-item>
         <el-form-item label="浜у搧缂栧彿" prop="productCode">
-          <el-input v-model="form.productCode" placeholder="璇烽�夋嫨浜у搧" >
-            <el-button slot="append" @click="handleSelectProduct" icon="el-icon-search"></el-button>
-          </el-input>
-          <ItemSelect ref="itemSelect" @onSelected="onItemSelected" > </ItemSelect>
+          <el-input v-model="form.productCode" :disabled="editFlag" placeholder="璇疯緭鍏ヤ骇鍝佺紪鍙�" />
         </el-form-item>
-        <el-form-item label="浜у搧鍚嶇О" prop="productName">
-          <el-input v-model="form.productName" disabled placeholder="璇疯緭鍏ヤ骇鍝佸悕绉�" />
+        <el-form-item label="鎴愬搧鎻忚堪" prop="productName">
+          <el-input v-model="form.productName" :disabled="editFlag" placeholder="璇疯緭鍏ユ垚鍝佹弿杩�" />
         </el-form-item>
-        <el-form-item label="绉嶇被" prop="productName">
-          <el-input v-model="form.typeZ" disabled placeholder="璇疯緭鍏ョ绫�" />
+        <el-form-item label="鏈哄瀷" prop="productName">
+          <el-input v-model="form.typeZ" :disabled="editFlag" placeholder="璇疯緭鍏ユ満鍨�" />
         </el-form-item>
-        <el-form-item label="瀹為檯鏁伴噺" prop="actualQty">
-          <el-input v-model="form.actualQty"  placeholder="璇疯緭鍏ュ疄闄呮暟閲�" />
+        <el-form-item label="闇�姹傛暟閲�" prop="planQty">
+          <el-input v-model="form.planQty" :disabled="editFlag" placeholder="璇疯緭鍏ラ渶姹傛暟閲�" />
         </el-form-item>
-        <el-form-item label="杞﹂棿缂栧彿" prop="workshopCode">
-          <el-select style="width: 93%" @change="handleSelectChange(form.workshopCode)" v-model="form.workshopCode" placeholder="璇烽�夋嫨杞﹂棿缂栧彿">
+        <el-form-item label="宸ュ崟鐘舵��" prop="orderStatus">
+          <el-select style="width: 93%" v-model="form.orderStatus" placeholder="璇烽�夋嫨宸ュ崟鐘舵��">
             <el-option
-              v-for="item in options"
-              :key="item.workshopCode"
-              :label="item.workshopName"
-              :value="item.workshopCode">
+              v-for="item in statuOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item style="margin-left: -15px" label="浜х嚎缂栧彿" prop="lineCode">
-          <el-select style="width: 93%" v-model="form.lineCode" placeholder="璇烽�夋嫨浜х嚎缂栧彿">
-            <el-option
-              v-for="item in lineOptions"
-              :key="item.lineCode"
-              :label="item.lineName"
-              :value="item.lineCode">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="宸ヨ壓娴佺▼" prop="routeCode">
-          <el-input v-model="form.routeCode" disabled placeholder="璇疯緭鍏ュ伐鑹烘祦绋�" />
-        </el-form-item>
-        <el-form-item label="浜у搧BOM" prop="bomCode">
-          <el-input v-model="form.bomCode" disabled placeholder="璇疯緭鍏ヤ骇鍝丅OM" />
-        </el-form-item>
-        <el-form-item label="宸ヨ壓閰嶆柟" prop="recipeCode">
-          <el-input v-model="form.recipeCode" placeholder="璇疯緭鍏ュ伐鑹洪厤鏂�" />
-        </el-form-item>
-        <el-form-item label="璁″垝鏁伴噺" prop="planQty">
-          <el-input v-model="form.planQty" placeholder="璇疯緭鍏ヨ鍒掓暟閲�" />
-        </el-form-item>
-        <el-form-item label="闇�姹傛棩鏈�" prop="demandDate">
-          <el-date-picker style="width: 88%" clearable
-            v-model="form.demandDate"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="璇烽�夋嫨闇�姹傛棩鏈�">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item style="margin-left: -30px" label="澶囨敞" prop="remarks">
-          <el-input v-model="form.remarks" placeholder="璇疯緭鍏ュ娉�" />
-        </el-form-item>
-        <el-row>
-          <el-col :span="12">
-            <el-form-item style="margin-left: 10px" label-width="120" label="璁″垝寮�濮嬫椂闂�" prop="planStartTime">
-              <el-date-picker clearable
-                v-model="form.planStartTime"
-                type="date"
-                value-format="yyyy-MM-dd"
-                placeholder="璇烽�夋嫨璁″垝寮�濮嬫椂闂�">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item style="margin-left: 76px" label-width="120" label="璁″垝缁撴潫鏃堕棿" prop="planEndTime">
-              <el-date-picker clearable
-                v-model="form.planEndTime"
-                type="date"
-                value-format="yyyy-MM-dd"
-                placeholder="璇烽�夋嫨璁″垝缁撴潫鏃堕棿">
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
 
-        </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
@@ -344,31 +226,31 @@
       </div>
     </el-dialog>
 
-    <el-dialog v-dialogpop-up :title="title" :visible.sync="Createopen" width="400px" append-to-body>
+    <el-dialog v-dialogpop-up :title="title" :visible.sync="Createopen" width="600px" append-to-body>
        <span slot="title">
         <i class="el-icon-s-order"></i>
         {{titleName}}
       </span>
-      <el-form ref="form" inline  :model="form" :rules="CreateRules" label-width="100px">
+      <el-form ref="form" inline  :model="form" :rules="CreateRules" label-width="120px">
         <el-form-item   label="鏈哄瀷" prop="typeZ">
-          <el-input disabled v-model="form.typeZ"  placeholder="璇疯緭鍏ユ満鍨�" />
+          <el-input disabled v-model="form.typeZ" style="font-size: 18px"  placeholder="璇疯緭鍏ユ満鍨�" />
         </el-form-item>
         <el-form-item  label="鏃ユ湡" prop="dateTime">
           <el-date-picker clearable
                           v-model="form.dateTime"
                           type="date"
                           value-format="yyyy-MM-dd"
-                          placeholder="璇烽�夋嫨鏃ユ湡" @input="handleCodeChange">
+                          placeholder="璇烽�夋嫨鏃ユ湡" @input="handleCodeChangeData">
           </el-date-picker>
         </el-form-item>
         <el-form-item class="hidden-form-item" label="鏃ユ湡瑙勫垯" prop="dateTimeRule">
           <el-input v-model="form.dateTimeRule"/>
         </el-form-item>
         <el-form-item   label="璧峰缂栧彿" prop="startCode">
-          <el-input type="number"   :maxlength="3"  :pattern="'[0-9]{3}'" v-model="form.startCode"  placeholder="璇疯緭鍏ヨ捣濮嬬紪鍙�" @input="handleCodeChange"/>
+          <el-input type="number" style="font-size: 18px"  :maxlength="3"  :pattern="'[0-9]{3}'" v-model="form.startCode"  placeholder="璇疯緭鍏ヨ捣濮嬬紪鍙�" @input="handleCodeChangeStart"/>
         </el-form-item>
         <el-form-item   label="璧锋缂栧彿" prop="startEndCode">
-          <el-input type="textarea" disabled v-model="form.startEndCode"/>
+          <el-input type="textarea" style="font-size: 18px;width: 250px" disabled v-model="form.startEndCode"/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -376,7 +258,8 @@
         <el-button @click="cancel">鍙� 娑�</el-button>
       </div>
     </el-dialog>
-
+    </div>
+    <Detail v-if="showDetailFlag" :singleSelect="singleSelect" @reserveChild = "reserveChild"></Detail>
   </div>
 </template>
 
@@ -386,7 +269,7 @@
 import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom";
 import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute";
 import ItemSelect  from "@/components/itemSelect/single.vue";
-import {  addOrderSchedulingForBoxCode,getProductionNotice, upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde";
+import {  addOrderSchedulingForBoxCode,getProductionNotice, upDownMove, listProductionOrde, getProductionOrde,getProductionOrdes, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde";
 import {
   listOrderScheduling,
   getOrderScheduling,
@@ -397,15 +280,49 @@
 } from "@/api/main/bs/orderScheduling/orderScheduling";
 import {listMaterial} from "@/api/main/bs/material/material";
 import {listModelNumber} from "@/api/main/bs/modelNumber/modelNumber";
+import Detail from "./detail.vue";
 
 export default {
   name: "ProductionOrde",
-  dicts: ['order_state','year','month','day'],
+  dicts: ['order_state','year','month','day','subscription_type', 'sys_yes_no', 'data_type','sys_normal_disable','factory_code'],
   components: {
     ItemSelect ,
+    Detail
   },
   data() {
     return {
+      editFlag: false,
+      statuOptions:[
+        {
+          label:"寰呬笅杈�",
+          value:"1"
+        },
+        {
+          label:"宸蹭笅杈�",
+          value:"2"
+        }
+      ],
+      typeSelectList: [
+        {
+          label:"380",
+          value:"380"
+        },
+        {
+          label:"280",
+          value:"280"
+        },
+        {
+          label:"196",
+          value:"196"
+        },
+        {
+          label:"296",
+          value:"296"
+        }
+      ],
+      typeZDateRules: '',
+      showDetailFlag: false,
+      singleSelect:{},
       titleName: '',
       options: [],
       lineOptions: [],
@@ -421,6 +338,7 @@
       ids: [],
       // 闈炲崟涓鐢�
       single: true,
+      create: false,
       // 闈炲涓鐢�
       multiple: true,
       move: true,
@@ -454,12 +372,14 @@
         marketAreaCode: null,
         softwareVersionCode: null,
         productCompanyCode: null,
-        frontEndId: 0,
+        frontEndId: null,
         idNums: null,
         typeZ: null,
+        engineNo: null,
         flag: null,
         adds:null,
         productionNotice: null,
+        dateConditions: [],
       },
       materialQueryParams: {
         pageNum: 1,
@@ -489,12 +409,6 @@
         year: [
           { required: true, message: "涓嶈兘涓虹┖", trigger: "blur" }
         ],
-        dateTime: [
-          { required: true, message: "涓嶈兘涓虹┖", trigger: "blur" }
-        ],
-        startCode: [
-          { required: true, message: "涓嶈兘涓虹┖", trigger: "blur" }
-        ],
       },
       change: {
         day: '',
@@ -502,6 +416,33 @@
         year: '',
       },
       markNo: '',
+      pickerOptions: {
+        shortcuts: [{
+          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]);
+          }
+        }]
+      },
     };
   },
   created() {
@@ -509,22 +450,21 @@
     this.initWorkshop();
   },
   methods: {
-    //鏃ユ湡鎴栧紑濮嬬紪鍙疯緭鍏ユ椂
-    handleCodeChange(data){
+    reserveChild(){
+      this.showDetailFlag = false
+    },
+    handleCodeChangeData(){
+      console.log('1111111111111111')
       let dateTime = this.form.dateTime;
       let planQty = this.form.planQty;
-      let startCode = this.form.startCode
-      if(dateTime !== null && dateTime !== undefined
-        && startCode !== null && startCode !== undefined) {
+      let dateTimeRule = "";
+      if(dateTime !== null && dateTime !== undefined){
         let dateTimes = dateTime.split("-");
         let year = dateTimes[0];
         let month = dateTimes[1];
         let day = dateTimes[2];
         let dictYear = this.dict.type.year;
         let dictMonth = this.dict.type.month;
-        let startCode = this.form.startCode
-        let dateTimeRule = "";
-
         //骞�
         for (let i = 0; i < dictYear.length; i++) {
           if (year === dictYear[i].label) {
@@ -542,21 +482,39 @@
         dateTimeRule = dateTimeRule + day;
         dateTimeRule = dateTimeRule + this.markNo;
         this.form.dateTimeRule = dateTimeRule;//姝ゅ璧嬪�间笉鍔犳満鍨�
-        dateTimeRule = dateTimeRule + this.form.typeZ;//姝ゅ鍔犳満鍨嬶紝椤哄簭涓嶈兘棰犲��
-
-        //璧嬪�艰捣濮嬬紪鐮�
-        this.form.startEndCode = dateTimeRule +  String(parseInt(startCode)).padStart(3, '0') + "         " + dateTimeRule + String(parseInt(startCode) + parseInt(planQty)-1).padStart(3, '0') ;
+        dateTimeRule = this.form.typeZ +" "+dateTimeRule;//姝ゅ鍔犳満鍨嬶紝椤哄簭涓嶈兘棰犲��
       }
+      if (this.form.typeZ !== null && this.form.typeZ !== '' && dateTimeRule !== null && dateTimeRule !== '' ){
+        this.typeZDateRules = dateTimeRule
+        console.log('222222222222')
+        let queryParams = {
+          model: this.form.typeZ,
+          modelDate: this.form.dateTimeRule,
+        }
+        listModelNumber(queryParams).then(response => {
+          if(response.rows.length === 0){
+            this.form.startCode = 1
+          }else {
+            let max = response.rows[0].maxnumValue
+            this.form.startCode = parseInt(max) + 1
+          }
+          this.form.startEndCode =   this.typeZDateRules + String(parseInt(this.form.startCode)).padStart(3, '0') +"\n"+ this.typeZDateRules + String(parseInt(this.form.startCode) + parseInt(planQty)-1).padStart(3, '0') ;
+          });
+      }
+
+    },
+    handleCodeChangeStart(){
+      let planQty = this.form.planQty;
+      console.log('planQty',planQty)
+      //璧嬪�艰捣濮嬬紪鐮�
+      this.form.startEndCode =   this.typeZDateRules + String(parseInt(this.form.startCode)).padStart(3, '0') +"\n"+ this.typeZDateRules + String(parseInt(this.form.startCode) + parseInt(planQty)-1).padStart(3, '0') ;
     },
 
     getProductionNotice(){
       getProductionNotice(this.queryParams).then(response => {
-        console.log(response)
-        console.log(response.data)
 
-        console.log(response.data.msg)
-        this.$modal.msgSuccess(response.data.msg);
-        this.queryParams = {}
+        this.$modal.msgSuccess(response.msg);
+        // this.queryParams = {}
         this.getList();
       });
     },
@@ -634,6 +592,7 @@
     /** 鏌ヨ鐢熶骇宸ュ崟鍒楄〃 */
     getList() {
       this.loading = true;
+      console.log('this.queryParams',this.queryParams)
       listProductionOrde(this.queryParams).then(response => {
         this.productionOrdeList = response.rows;
         this.total = response.total;
@@ -688,7 +647,8 @@
         spareField3: null,
         typeZ: null,
         spareField4: null,
-        adds:null
+        adds:null,
+        idNums:null
       };
       this.resetForm("form");
     },
@@ -700,52 +660,106 @@
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
     resetQuery() {
       this.resetForm("queryForm");
+      this.queryParams.typeZ = ''
+      this.queryParams.engineNo = ''
       this.handleQuery();
     },
-    // 澶氶�夋閫変腑鏁版嵁
+    /** 澶氶�夋閫変腑鏁版嵁 */
     handleSelectionChange(selection) {
+      console.log('this.single1111',this.single)
+      console.log('selecion',selection)
       this.ids = selection.map(item => item.id)
-      this.move = selection.length!==1
-      if(!selection.length){
+      const statusList = selection.map(item => item.orderStatus)
+      console.log('statusList',statusList)
+      console.log('statusList.filter( x => x !== "1").length',statusList.filter( x => x !== "1").length)
+      if (statusList.filter( x => x !== "1").length >0){
+        this.create = true
+      } else {
+        this.create = false
+      }
+      if (selection.length >1){
+        this.single = false
+        this.multiple = true
+      } else if (selection.length === 1){
+        this.single = true
+        this.multiple = false
+        this.singleSelect = selection[0]
+      } else {
         this.single = true
         this.multiple = true
-      }else {
-        if(selection[0].orderStatus === '1' && selection.length === 1){
-          this.single = false
-          this.multiple = false
-        }
       }
+      // let statusList = selection.filter(x => x.orderStatus === "1")
+      // console.log('statusList',statusList)
+      // if (selection.length === statusList.length){
+      //   //寰呯敓鎴�
+      //   this.single = false
+      // }
 
+      // this.ids = selection.map(item => item.id)
+      // this.move = selection.length!==1
+      // if(!selection.length){
+      //   console.log('1')
+      //   this.single = true
+      //   this.multiple = true
+      // } else {
+      //   if(selection[0].orderStatus === '1' && selection.length === 1){
+      //     console.log('2')
+      //     this.single = false
+      //     this.multiple = false
+      //   }
+      //   if(selection[0].orderStatus === '2' && selection.length === 1){
+      //     console.log('3',this.single)
+      //     this.singleSelect = selection[0]
+      //   }
+      // }
     },
+
     /** 鏂板鎸夐挳鎿嶄綔 */
     handleAdd() {
       this.initWorkshop();
       this.reset();
+      this.editFlag = false
       this.open = true;
       this.titleName = "娣诲姞鐢熶骇璁㈠崟";
     },
     /** 鍚屾鎸夐挳鎿嶄綔 */
-    CreatehandleUpdate(Row) {
-      this.initWorkshop();
-      this.reset();
-      const id = Row.id || this.ids
-      getProductionOrde(id).then(response => {
-        console.log(response.data)
-        console.log(response.data.productCode)
-        this.materialQueryParams.materialCode = response.data.productCode;
-        listMaterial(this.materialQueryParams).then(response => {
-          this.markNo = response.rows[0].mark
+    CreatehandleUpdate() {
+      console.log('this.ids',this.ids)
+      if (this.ids.length === 0){
+        this.$message.error('璇峰嬀閫夋暟鎹�');
+      }else {
+        this.initWorkshop();
+        this.reset();
+        const id = this.ids
+        getProductionOrdes(id).then(response => {
+          console.log(response.data)
+          console.log(response.data.productCode)
+          this.materialQueryParams.materialCode = response.data.productCode;
+          listMaterial(this.materialQueryParams).then(response => {
+            console.log("res2121",response)
+            if (response.rows.length === 0){
+              this.$message.error('鏈煡鎵惧埌鐗╂枡缂栫爜瀵瑰簲缂栧彿锛�');
+              this.cancel()
+            } else {
+              this.markNo = response.rows[0].mark
+              this.form.typeL = response.rows[0].typeL;
+            }
+
+          });
+          this.form = response.data;
+          this.form.idNums=id;
+          this.Createopen = true;
+          this.titleName = "鐢熸垚绠变綋鏉$爜";
+          // return Array.from({ length: parseInt(this.actualQty) }, (_, index) => index + 1);
         });
-        this.form = response.data;
-        this.Createopen = true;
-        this.titleName = "鐢熸垚绠变綋鏉$爜";
-        // return Array.from({ length: parseInt(this.actualQty) }, (_, index) => index + 1);
-      });
+      }
+
     },
     /** 淇敼鎸夐挳鎿嶄綔 */
     handleUpdate(row) {
       this.initWorkshop();
       this.reset();
+      this.editFlag = true
       const id = row.id || this.ids
       getProductionOrde(id).then(response => {
         console.log(response.data)
@@ -777,19 +791,30 @@
 
     /** 鐢熸垚绠变綋鏉$爜鎻愪氦鎸夐挳 */
     submitFormForBoxCode() {
+      if (this.form.startCode === null || this.form.startCode === ''){
+        this.$message.error('璧峰缂栧彿涓嶈兘涓虹┖!');
+        return;
+      }
       let startCode = parseInt(this.form.startCode);
       let queryParams = {
         model: this.form.typeZ,
         modelDate: this.form.dateTimeRule,
+      }
+
+      if(startCode>999){
+        this.$message.error('璧峰缂栧彿瓒呭嚭鏈�澶ц寖鍥达紝璇疯緭鍏�1-999鐨勬暟瀛楋紒');
+        return;
+      }else if(startCode<1){
+        this.$message.error('璇疯緭鍏�1-999鐨勬暟瀛楋紒');
+        return;
       }
       listModelNumber(queryParams).then(response => {
         if(response.rows.length === 0){
           this.saveBoxCode()
         }else {
           let maxNumValue = response.rows[0].maxnumValue;
-          if(startCode<maxNumValue){
-            this.$message.error('鏂板缓鐨勪笉鑳芥瘮鏌ヨ鍑虹殑灏�');
-            return;
+          if(startCode<=maxNumValue){
+            this.$message.error('绠变綋鏉$爜閲嶅锛岃閲嶆柊杈撳叆璧峰缂栧彿锛�');
           }else {
             this.saveBoxCode()
           }
@@ -800,7 +825,7 @@
     saveBoxCode(){
       this.$refs["form"].validate(valid => {
         if (valid) {
-          if (this.form.id != null) {
+          if (this.form.idNums != null) {
             addOrderSchedulingForBoxCode(this.form).then(response => {
               this.$modal.msgSuccess("淇濆瓨鎴愬姛");
               this.Createopen = false;
@@ -827,7 +852,17 @@
         ...this.queryParams
       }, `productionOrde_${new Date().getTime()}.xlsx`)
     },
+    goToPage() {
+      if (this.ids.length === 0){
+        this.$message.error('璇峰嬀閫夋暟鎹�');
+      }else {
+        this.showDetailFlag=true
+        console.log('this.showDetailFlag',this.showDetailFlag)
+        //鏇存柊瀹為檯鐢熶骇鏃ユ湡
+        //updateOrderInfo(this.singleSelect)
+      }
 
+    },
   }
 };
 </script>
@@ -835,4 +870,20 @@
 .hidden-form-item {
   display: none;
 }
+::v-deep .custom-size .el-checkbox__input .el-checkbox__inner {
+  width: 20px;
+  height: 20px;
+}
+/* 璋冩暣Checkbox鐨勬爣绛炬枃瀛楀ぇ灏� */
+::v-deep .custom-size .el-checkbox__inner::after {
+  border: 3px solid #fff;
+  border-left: 0;
+  border-top: 0;
+  left: 5px;
+  top: 5px;
+}
+
+::v-deep .custom-size .el-checkbox__input.is-checked .el-checkbox__inner::after {
+  transform: rotate(50deg) scaleY(1.3);}
+
 </style>

--
Gitblit v1.9.3