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 | 667 +++++++++++++++++++++++++++++++++---------------------- 1 files changed, 398 insertions(+), 269 deletions(-) diff --git a/jcdm-ui/src/views/main/om/productionOrde/index.vue b/jcdm-ui/src/views/main/om/productionOrde/index.vue index 4f1359c..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"/>--> @@ -21,33 +34,23 @@ </el-select> </el-form-item> <el-form-item style="float: right"> - <el-button type="warning" icon="el-icon-download" size="mini" @click="getProductionNotice">鎺ユ敹</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> <el-button type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">楂樼骇鏌ヨ</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> </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> @@ -70,7 +73,7 @@ plain icon="el-icon-edit" size="mini" - :disabled="single" + :disabled="multiple" @click="handleUpdate" v-hasPermi="['om:productionOrde:edit']" >淇敼</el-button> @@ -96,15 +99,25 @@ v-hasPermi="['om:productionOrde:export']" >瀵煎嚭</el-button> </el-col> + <el-col :span="1.5"> <el-button - type="warning" + type="success" plain - icon="el-icon-upload2" - :disabled="move" + icon="el-icon-wind-power" size="mini" - @click="moveUp(val => val, 'up')" - >涓婄Щ</el-button> + @click="getProductionNotice" + >鎺ユ敹</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-edit" + size="mini" + :disabled="create" + @click="CreatehandleUpdate" + >鐢熸垚</el-button> </el-col> <el-col :span="1.5"> <el-button @@ -112,20 +125,9 @@ 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="primary" - plain - icon="el-icon-createUpdate" - size="mini" - :disabled="single" - @click="CreatehandleUpdate" - v-hasPermi="['om:productionOrde:createUpdate']" - >鐢熸垚</el-button> + :disabled="!single" + @click="goToPage" + >寮�濮嬩綔涓�</el-button> </el-col> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> @@ -133,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/workReport-data/index/', query: {workOrderNo: scope.row.workOrderNo} }" class="link-type"> + <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="140" align="center" prop="productCode"> + + <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 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> - <el-table-column label="璁㈠崟绫诲瀷" align="center"> - </el-table-column> - <el-table-column label="ZWS" align="center"> + + <el-table-column label="宸ュ巶缂栧彿" align="center" prop="workshopCode"> </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="160" align="center" prop="productName"> + <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">--> -<!-- <!– 宸ュ崟鐘舵�侊紙1鍒涘缓銆�2宸插彂甯冦��3鐢熶骇涓��4宸插喕缁撱��5宸插畬宸ャ��6宸插叧闂級 –>--> -<!-- <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> @@ -241,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> @@ -336,52 +226,40 @@ </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="80px"> - <el-form-item label="绉嶇被" prop="typeZ"> - <el-input disabled v-model="form.typeZ" placeholder="璇疯緭鍏ョ绫�" /> + <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" style="font-size: 18px" placeholder="璇疯緭鍏ユ満鍨�" /> </el-form-item> - <el-form-item label="骞翠唤" prop="year"> - <el-select @change="changeYear(form.year)" v-model="form.year" placeholder="璇烽�夋嫨骞翠唤" clearable> - <el-option v-for="dict in dict.type.year" - :key="dict.value" - :label="dict.label" - :value="dict.value"/> - </el-select> + <el-form-item label="鏃ユ湡" prop="dateTime"> + <el-date-picker clearable + v-model="form.dateTime" + type="date" + value-format="yyyy-MM-dd" + placeholder="璇烽�夋嫨鏃ユ湡" @input="handleCodeChangeData"> + </el-date-picker> </el-form-item> - <el-form-item label="鏈堜唤" prop="month"> - <el-select @change="changeMonth(form.month)" v-model="form.month" placeholder="璇烽�夋嫨鏈堜唤" clearable> - <el-option v-for="dict in dict.type.month" - :key="dict.value" - :label="dict.label" - :value="dict.value"/> - </el-select> + <el-form-item class="hidden-form-item" label="鏃ユ湡瑙勫垯" prop="dateTimeRule"> + <el-input v-model="form.dateTimeRule"/> </el-form-item> - <el-form-item label="鏃ユ湡" prop="day"> - <el-select @change="changeDay(form.day)" v-model="form.day" placeholder="璇烽�夋嫨鏃ユ湡" clearable> - <el-option v-for="dict in dict.type.day" - :key="dict.value" - :label="dict.label" - :value="dict.value"/> - </el-select> + <el-form-item label="璧峰缂栧彿" prop="startCode"> + <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="actualQty"> - <el-input disabled v-model="form.actualQty" placeholder="璇疯緭鍏ユ暟閲�" /> - </el-form-item> - <el-form-item label="缂栫爜" prop="adds"> - <el-input disabled v-model="form.adds" placeholder="璇风敓鎴愮紪鐮�" /> + <el-form-item label="璧锋缂栧彿" prop="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"> - <el-button type="primary" @click="CreateSubmitForm">纭� 瀹�</el-button> + <el-button type="primary" @click="submitFormForBoxCode">纭� 瀹�</el-button> <el-button @click="cancel">鍙� 娑�</el-button> </div> </el-dialog> - + </div> + <Detail v-if="showDetailFlag" :singleSelect="singleSelect" @reserveChild = "reserveChild"></Detail> </div> </template> @@ -391,17 +269,60 @@ import { listProductBom } from "@/api/main/bs/ProductBom/ProductBom"; import { listTechnologyRoute} from "@/api/main/bs/technologyRoute/technologyRoute"; import ItemSelect from "@/components/itemSelect/single.vue"; -import { getProductionNotice, upDownMove, listProductionOrde, getProductionOrde, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde"; -import { listOrderScheduling, getOrderScheduling, delOrderScheduling, addOrderScheduling, updateOrderScheduling,generateNumbers } from "@/api/main/bs/orderScheduling/orderScheduling"; +import { addOrderSchedulingForBoxCode,getProductionNotice, upDownMove, listProductionOrde, getProductionOrde,getProductionOrdes, delProductionOrde, addProductionOrde, updateProductionOrde } from "@/api/main/om/productionOrde/productionOrde"; +import { + listOrderScheduling, + getOrderScheduling, + delOrderScheduling, + addOrderScheduling, + updateOrderScheduling, + generateNumbers +} 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: [], @@ -417,6 +338,7 @@ ids: [], // 闈炲崟涓鐢� single: true, + create: false, // 闈炲涓鐢� multiple: true, move: true, @@ -450,12 +372,19 @@ 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, + pageSize: 10, + materialCode: null, }, // 琛ㄥ崟鍙傛暟 @@ -486,6 +415,34 @@ month: '', 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() { @@ -493,10 +450,71 @@ this.initWorkshop(); }, methods: { + reserveChild(){ + this.showDetailFlag = false + }, + handleCodeChangeData(){ + console.log('1111111111111111') + let dateTime = this.form.dateTime; + let planQty = this.form.planQty; + 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; + //骞� + for (let i = 0; i < dictYear.length; i++) { + if (year === dictYear[i].label) { + dateTimeRule = dictYear[i].value + // this.form.startEndCode = startEndCode; + } + } + //鏈� + for (let i = 0; i < dictMonth.length; i++) { + if (month === dictMonth[i].label) { + dateTimeRule = dateTimeRule + dictMonth[i].value; + } + } + //鏃� + dateTimeRule = dateTimeRule + day; + dateTimeRule = dateTimeRule + this.markNo; + this.form.dateTimeRule = dateTimeRule;//姝ゅ璧嬪�间笉鍔犳満鍨� + 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 => { - this.$modal.msgSuccess("鎺ユ敹鎴愬姛"); - this.queryParams = {} + + this.$modal.msgSuccess(response.msg); + // this.queryParams = {} this.getList(); }); }, @@ -574,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; @@ -628,7 +647,8 @@ spareField3: null, typeZ: null, spareField4: null, - adds:null + adds:null, + idNums:null }; this.resetForm("form"); }, @@ -640,50 +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) - this.form = response.data; - this.Createopen = true; - this.titleName = "鐢熸垚璁㈠崟"; - // return Array.from({ length: parseInt(this.actualQty) }, (_, index) => index + 1); - }); - this.$modal.msgSuccess(Row.actualQty); + 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); + }); + } }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { this.initWorkshop(); this.reset(); + this.editFlag = true const id = row.id || this.ids getProductionOrde(id).then(response => { console.log(response.data) @@ -712,6 +788,54 @@ } }); }, + + /** 鐢熸垚绠变綋鏉$爜鎻愪氦鎸夐挳 */ + 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('绠变綋鏉$爜閲嶅锛岃閲嶆柊杈撳叆璧峰缂栧彿锛�'); + }else { + this.saveBoxCode() + } + } + }); + }, + + saveBoxCode(){ + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.idNums != null) { + addOrderSchedulingForBoxCode(this.form).then(response => { + this.$modal.msgSuccess("淇濆瓨鎴愬姛"); + this.Createopen = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { const ids = row.id || this.ids; @@ -728,33 +852,38 @@ ...this.queryParams }, `productionOrde_${new Date().getTime()}.xlsx`) }, - /** 鎻愪氦鎸夐挳 */ - CreateSubmitForm() { - this.$refs["form"].validate(valid => { - if (valid) { - if (this.form.orderNumber != null) { - updateOrderScheduling(this.form).then(response => { - this.$modal.msgSuccess("淇敼鎴愬姛"); - this.open = false; - this.getList(); - }); - } else { - addOrderScheduling(this.form).then(response => { - this.$modal.msgSuccess("鏂板鎴愬姛"); - this.open = false; - this.getList(); - }); - } - } - }); - }, + goToPage() { + if (this.ids.length === 0){ + this.$message.error('璇峰嬀閫夋暟鎹�'); + }else { + this.showDetailFlag=true + console.log('this.showDetailFlag',this.showDetailFlag) + //鏇存柊瀹為檯鐢熶骇鏃ユ湡 + //updateOrderInfo(this.singleSelect) + } + }, } }; </script> <style lang="scss" scoped> -//::v-deep .el-dialog__header{ -// /*background-color: #f8f8f8;*/ -// background-color: #f8f8f9; -//} +.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