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 | 532 ++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 289 insertions(+), 243 deletions(-) diff --git a/jcdm-ui/src/views/main/om/productionOrde/index.vue b/jcdm-ui/src/views/main/om/productionOrde/index.vue index 18ea227..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,26 +99,7 @@ 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="success" @@ -122,7 +107,6 @@ icon="el-icon-wind-power" size="mini" @click="getProductionNotice" - v-hasPermi="['om:productionOrde:receive']" >鎺ユ敹</el-button> </el-col> <el-col :span="1.5"> @@ -131,10 +115,19 @@ plain 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> @@ -142,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">--> -<!-- <!– 宸ュ崟鐘舵�侊紙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> @@ -250,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> @@ -345,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"> @@ -377,7 +258,8 @@ <el-button @click="cancel">鍙� 娑�</el-button> </div> </el-dialog> - + </div> + <Detail v-if="showDetailFlag" :singleSelect="singleSelect" @reserveChild = "reserveChild"></Detail> </div> </template> @@ -387,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, @@ -398,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: [], @@ -422,6 +338,7 @@ ids: [], // 闈炲崟涓鐢� single: true, + create: false, // 闈炲涓鐢� multiple: true, move: true, @@ -455,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, @@ -490,12 +409,6 @@ year: [ { required: true, message: "涓嶈兘涓虹┖", trigger: "blur" } ], - dateTime: [ - { required: true, message: "涓嶈兘涓虹┖", trigger: "blur" } - ], - startCode: [ - { required: true, message: "涓嶈兘涓虹┖", trigger: "blur" } - ], }, change: { day: '', @@ -503,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() { @@ -510,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) { @@ -543,18 +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 => { this.$modal.msgSuccess(response.msg); - this.queryParams = {} + // this.queryParams = {} this.getList(); }); }, @@ -632,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; @@ -686,7 +647,8 @@ spareField3: null, typeZ: null, spareField4: null, - adds:null + adds:null, + idNums:null }; this.resetForm("form"); }, @@ -698,53 +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 - this.form.typeL = response.rows[0].typeL; + 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) @@ -776,16 +791,21 @@ /** 鐢熸垚绠变綋鏉$爜鎻愪氦鎸夐挳 */ 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鐨勬暟瀛楋紒'); + this.$message.error('璇疯緭鍏�1-999鐨勬暟瀛楋紒'); return; } listModelNumber(queryParams).then(response => { @@ -805,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; @@ -832,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> @@ -840,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