春风项目四线(合箱线、总装线)
懒羊羊
2024-01-18 d2b75229bf2b8261e1232b2774cb9ea3f549897e
提交 | 用户 | 时间
d9cf6b 1 <template>
J 2   <div class="app-container">
3     <el-card class="box-card">
4         <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
2aea64 5           <el-form-item label="订单编号" prop="orderNo">
d9cf6b 6             <el-input
2aea64 7               v-model="queryParams.orderNo"
d9cf6b 8               placeholder="请输入订单编号"
J 9               clearable
10               @keyup.enter.native="handleQuery"
11             />
12           </el-form-item>
13           <el-form-item label="机型" prop="model">
14             <el-input
15               v-model="queryParams.model"
16               placeholder="请输入机型"
17               clearable
18               @keyup.enter.native="handleQuery"
19             />
20           </el-form-item>
1391b3 21           <el-form-item label="生产状态" prop="productionStatus">
22             <el-select v-model="queryParams.productionStatus" placeholder="请选择工单状态" clearable>
23               <el-option
24                 v-for="dict in dict.type.order_scheduling_produce_status"
25                 :key="dict.value"
26                 :label="dict.label"
27                 :value="dict.value"/>
28             </el-select>
d9cf6b 29           </el-form-item>
J 30           <el-form-item style="float: right">
31             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
82939b 32             <el-button type="warning" icon="el-icon-copy-document" size="mini" @click="advancedQuery">高级查询</el-button>
d9cf6b 33             <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
J 34           </el-form-item>
35         </el-form>
1391b3 36       <el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="advancedShowSearch" label-width="68px">
37         <el-form-item label="发动机号" prop="engineNo">
38           <el-input
39             v-model="queryParams.engineNo"
40             placeholder="请输入发动机号"
41             clearable
42             @keyup.enter.native="handleQuery"
43           />
44         </el-form-item>
45         <el-form-item label="质量状态" prop="qualityStatus">
46           <el-select v-model="queryParams.qualityStatus" placeholder="请选择质量状态" clearable>
47             <el-option
48               v-for="dict in dict.type.quality_status"
49               :key="dict.value"
50               :label="dict.label"
51               :value="dict.value"/>
52           </el-select>
53         </el-form-item>
54         <el-form-item label="是否打印" prop="whetherOrPrint">
55           <el-select v-model="queryParams.whetherOrPrint" placeholder="请选择是否打印" clearable>
56             <el-option
57               v-for="dict in dict.type.print_status"
58               :key="dict.value"
59               :label="dict.label"
60               :value="dict.value"/>
61           </el-select>
62         </el-form-item>
63         <el-form-item label="合箱报工" prop="report10">
64           <el-input
65             v-model="queryParams.report10"
66             placeholder="请输入合箱报工"
67             clearable
68             @keyup.enter.native="handleQuery"
69           />
70         </el-form-item>
71         <el-form-item label="总装报工" prop="report20">
72           <el-input
73             v-model="queryParams.report20"
74             placeholder="请输入总装报工"
75             clearable
76             @keyup.enter.native="handleQuery"
77           />
78         </el-form-item>
79         <el-form-item label="CVT报工" prop="report30">
80           <el-input
81             v-model="queryParams.report30"
82             placeholder="请输入CVT报工"
83             clearable
84             @keyup.enter.native="handleQuery"
85           />
86         </el-form-item>
87         <el-form-item label="操作时间" prop="operateTime">
88           <el-date-picker
d2b752 89             v-model="queryParams.dateConditions"
1391b3 90             type="datetimerange"
91             :picker-options="pickerOptions"
92             value-format="yyyy-MM-dd HH:mm:ss"
93             range-separator="至"
94             start-placeholder="开始日期"
95             end-placeholder="结束日期"
96             align="right">
97           </el-date-picker>
98         </el-form-item>
99       </el-form>
d9cf6b 100     </el-card>
J 101
102     <el-card style="margin-top: 10px" class="box-card">
103         <el-row :gutter="10" class="mb8">
104           <el-col :span="1.5">
105             <el-button
106               type="primary"
107               plain
108               icon="el-icon-plus"
109               size="mini"
110               @click="handleAdd"
111               v-hasPermi="['bs:orderScheduling:add']"
112             >新增</el-button>
113           </el-col>
114           <el-col :span="1.5">
115             <el-button
116               type="success"
117               plain
118               icon="el-icon-edit"
119               size="mini"
120               :disabled="single"
121               @click="handleUpdate"
122               v-hasPermi="['bs:orderScheduling:edit']"
123             >修改</el-button>
124           </el-col>
125           <el-col :span="1.5">
126             <el-button
127               type="danger"
128               plain
129               icon="el-icon-delete"
130               size="mini"
131               :disabled="multiple"
132               @click="handleDelete"
133               v-hasPermi="['bs:orderScheduling:remove']"
134             >删除</el-button>
135           </el-col>
136           <el-col :span="1.5">
137             <el-button
138               type="warning"
139               plain
140               icon="el-icon-download"
141               size="mini"
142               @click="handleExport"
143               v-hasPermi="['bs:orderScheduling:export']"
144             >导出</el-button>
145           </el-col>
146           <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
147         </el-row>
148
149         <el-table border v-loading="loading" :data="orderSchedulingList" @selection-change="handleSelectionChange">
150           <el-table-column type="selection" width="55" align="center" />
5f7e70 151           <el-table-column label="生产订单" align="center" prop="orderNo" width="130">
2aea64 152
d9cf6b 153           </el-table-column>
749044 154           <el-table-column label="发动机号" align="center" prop="engineNo" width="150">
2aea64 155
d9cf6b 156           </el-table-column>
J 157           <el-table-column label="产品类型" align="center" prop="productType">
a5f938 158             <template slot-scope="scope">
C 159               <dict-tag :options="dict.type.material_type" :value="scope.row.productType"/>
160             </template>
d9cf6b 161           </el-table-column>
J 162           <el-table-column label="机型" align="center" prop="model">
2aea64 163
d9cf6b 164           </el-table-column>
J 165           <el-table-column label="生产状态" align="center" prop="productionStatus">
04cd5a 166             <template slot-scope="scope">
167               <dict-tag :options="dict.type.order_scheduling_produce_status" :value="scope.row.productionStatus"/>
168             </template>
d9cf6b 169           </el-table-column>
J 170           <el-table-column label="工时" align="center" prop="workingHours">
2aea64 171
d9cf6b 172           </el-table-column>
J 173           <el-table-column label="当前工位" align="center" prop="currentWorkstation">
2aea64 174
d9cf6b 175           </el-table-column>
J 176           <el-table-column label="质量状态" align="center" prop="qualityStatus">
1391b3 177             <template slot-scope="scope">
178               <dict-tag :options="dict.type.quality_status" :value="scope.row.qualityStatus"/>
179             </template>
d9cf6b 180           </el-table-column>
J 181           <el-table-column label="是否打印" align="center" prop="whetherOrPrint">
1391b3 182             <template slot-scope="scope">
183               <dict-tag :options="dict.type.print_status" :value="scope.row.whetherOrPrint"/>
184             </template>
185           </el-table-column>
186           <el-table-column label="合箱报工" align="center" prop="report10">
2aea64 187
d9cf6b 188           </el-table-column>
1391b3 189           <el-table-column label="总装报工" align="center" prop="report20">
2aea64 190
d9cf6b 191           </el-table-column>
1391b3 192           <el-table-column label="CVT报工" align="center" prop="report30">
d9cf6b 193
J 194           </el-table-column>
2aea64 195           <el-table-column label="合箱上线" align="center" prop="combinedBoxTime">
d9cf6b 196
J 197           </el-table-column>
2aea64 198           <el-table-column label="总装下线" align="center" prop="finalAssemblyTime">
d9cf6b 199
J 200           </el-table-column>
201           <el-table-column label="操作人" align="center" prop="operator">
202
203           </el-table-column>
749044 204           <el-table-column label="操作时间" align="center" prop="operateTime" width="160">
2aea64 205
J 206           </el-table-column>
82939b 207 <!--          <el-table-column label="状态" align="center" prop="status">-->
2aea64 208
82939b 209 <!--          </el-table-column>-->
J 210 <!--          <el-table-column label="预留字段1" align="center" prop="spareField1">-->
2aea64 211
82939b 212 <!--          </el-table-column>-->
J 213 <!--          <el-table-column label="预留字段2" align="center" prop="spareField2">-->
2aea64 214
82939b 215 <!--          </el-table-column>-->
J 216 <!--          <el-table-column label="预留字段3" align="center" prop="spareField3">-->
2aea64 217
82939b 218 <!--          </el-table-column>-->
J 219 <!--          <el-table-column label="预留字段4" align="center" prop="spareField4">-->
2aea64 220
82939b 221 <!--          </el-table-column>-->
J 222 <!--          <el-table-column label="创建用户" align="center" prop="createUser">-->
2aea64 223
82939b 224 <!--          </el-table-column>-->
J 225 <!--          <el-table-column label="更改用户" align="center" prop="updateUser">-->
2aea64 226
82939b 227 <!--          </el-table-column>-->
J 228 <!--          <el-table-column label="备注" align="center" prop="remarks">-->
d9cf6b 229
82939b 230 <!--          </el-table-column>-->
d9cf6b 231           <el-table-column fixed="right" width="200" label="操作" align="center" class-name="small-padding fixed-width">
J 232             <template slot-scope="scope">
233               <el-button
234                 size="mini"
235                 type="success"
236                 plain
237                 style="width: 72px"
238                 icon="el-icon-edit"
239                 @click="handleUpdate(scope.row)"
240                 v-hasPermi="['bs:orderScheduling:edit']"
241               >修改</el-button>
242               <el-button
243                 size="mini"
244                 type="danger"
245                 plain
246                 style="width: 72px"
247                 icon="el-icon-delete"
248                 @click="handleDelete(scope.row)"
249                 v-hasPermi="['bs:orderScheduling:remove']"
250               >删除</el-button>
251             </template>
252           </el-table-column>
253         </el-table>
254     </el-card>
255
256     <pagination
257       v-show="total>0"
258       :total="total"
259       :page.sync="queryParams.pageNum"
260       :limit.sync="queryParams.pageSize"
261       @pagination="getList"
262     />
263
264     <!-- 添加或修改订单排产对话框 -->
265     <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="500px" append-to-body>
266       <span slot="title">
267         <i class="el-icon-s-order"></i>
268         {{titleName}}
269       </span>
270       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
2aea64 271         <el-form-item label="订单编号" prop="orderNo">
J 272           <el-input v-model="form.orderNo" placeholder="请输入订单编号" />
d9cf6b 273         </el-form-item>
J 274         <el-form-item label="发动机号" prop="engineNo">
275           <el-input v-model="form.engineNo" placeholder="请输入发动机号" />
276         </el-form-item>
2aea64 277         <el-form-item label="产品类型" prop="productType">
J 278           <el-select v-model="form.productType" placeholder="请选择产品类型">
279 <!--            <el-option-->
280 <!--              v-for="dict in dict.type.${dictType}"-->
281 <!--              :key="dict.value"-->
282 <!--              :label="dict.label"-->
283 <!--              :value="dict.value"-->
284 <!--            ></el-option>-->
285           </el-select>
286         </el-form-item>
d9cf6b 287         <el-form-item label="机型" prop="model">
J 288           <el-input v-model="form.model" placeholder="请输入机型" />
2aea64 289         </el-form-item>
J 290         <el-form-item label="生产状态" prop="productionStatus">
291           <el-radio-group v-model="form.productionStatus">
292 <!--            <el-radio-->
293 <!--              v-for="dict in dict.type.${dictType}"-->
294 <!--              :key="dict.value"-->
295 <!--              :label="dict.value"-->
296 <!--            >{{dict.label}}</el-radio>-->
297           </el-radio-group>
d9cf6b 298         </el-form-item>
J 299         <el-form-item label="工时" prop="workingHours">
300           <el-input v-model="form.workingHours" placeholder="请输入工时" />
301         </el-form-item>
302         <el-form-item label="当前工位" prop="currentWorkstation">
303           <el-input v-model="form.currentWorkstation" placeholder="请输入当前工位" />
2aea64 304         </el-form-item>
J 305         <el-form-item label="质量状态" prop="qualityStatus">
306           <el-radio-group v-model="form.qualityStatus">
307 <!--            <el-radio-->
308 <!--              v-for="dict in dict.type.${dictType}"-->
309 <!--              :key="dict.value"-->
310 <!--              :label="dict.value"-->
311 <!--            >{{dict.label}}</el-radio>-->
312           </el-radio-group>
d9cf6b 313         </el-form-item>
J 314         <el-form-item label="是否打印" prop="whetherOrPrint">
315           <el-input v-model="form.whetherOrPrint" placeholder="请输入是否打印" />
316         </el-form-item>
1391b3 317         <el-form-item label="合箱报工" prop="report10">
318           <el-input v-model="form.report10" placeholder="请输入合箱报工" />
d9cf6b 319         </el-form-item>
1391b3 320         <el-form-item label="总装报工" prop="report20">
321           <el-input v-model="form.report20" placeholder="请输入总装报工" />
322         </el-form-item>
323         <el-form-item label="30报工" prop="report20">
324           <el-input v-model="form.report30" placeholder="请输入30报工" />
d9cf6b 325         </el-form-item>
J 326         <el-form-item label="操作人" prop="operator">
327           <el-input v-model="form.operator" placeholder="请输入操作人" />
2aea64 328         </el-form-item>
J 329         <el-form-item label="状态" prop="status">
330           <el-radio-group v-model="form.status">
331 <!--            <el-radio-->
332 <!--              v-for="dict in dict.type.${dictType}"-->
333 <!--              :key="dict.value"-->
334 <!--              :label="dict.value"-->
335 <!--            >{{dict.label}}</el-radio>-->
336           </el-radio-group>
337         </el-form-item>
82939b 338 <!--        <el-form-item label="预留字段1" prop="spareField1">-->
J 339 <!--          <el-input v-model="form.spareField1" placeholder="请输入预留字段1" />-->
340 <!--        </el-form-item>-->
341 <!--        <el-form-item label="预留字段2" prop="spareField2">-->
342 <!--          <el-input v-model="form.spareField2" placeholder="请输入预留字段2" />-->
343 <!--        </el-form-item>-->
344 <!--        <el-form-item label="预留字段3" prop="spareField3">-->
345 <!--          <el-input v-model="form.spareField3" placeholder="请输入预留字段3" />-->
346 <!--        </el-form-item>-->
347 <!--        <el-form-item label="预留字段4" prop="spareField4">-->
348 <!--          <el-input v-model="form.spareField4" placeholder="请输入预留字段4" />-->
349 <!--        </el-form-item>-->
350 <!--        <el-form-item label="创建用户" prop="createUser">-->
351 <!--          <el-input v-model="form.createUser" placeholder="请输入创建用户" />-->
352 <!--        </el-form-item>-->
353 <!--        <el-form-item label="更改用户" prop="updateUser">-->
354 <!--          <el-input v-model="form.updateUser" placeholder="请输入更改用户" />-->
355 <!--        </el-form-item>-->
356 <!--        <el-form-item label="备注" prop="remarks">-->
357 <!--          <el-input v-model="form.remarks" placeholder="请输入备注" />-->
358 <!--        </el-form-item>-->
d9cf6b 359       </el-form>
J 360       <div slot="footer" class="dialog-footer">
361         <el-button type="primary" @click="submitForm">确 定</el-button>
362         <el-button @click="cancel">取 消</el-button>
363       </div>
364     </el-dialog>
365   </div>
366 </template>
367
368 <script>
369 import { listOrderScheduling, getOrderScheduling, delOrderScheduling, addOrderScheduling, updateOrderScheduling } from "@/api/main/bs/orderScheduling/orderScheduling";
370
371 export default {
372   name: "OrderScheduling",
a5f938 373   dicts: ['order_scheduling_produce_status','quality_status','print_status','material_type'],
d9cf6b 374   data() {
J 375     return {
376       // 遮罩层
377       loading: true,
378       titleName: "",
379       // 选中数组
380       ids: [],
381       // 非单个禁用
382       single: true,
383       // 非多个禁用
384       multiple: true,
1391b3 385       advancedShowSearch: false,
d9cf6b 386       // 显示搜索条件
J 387       showSearch: true,
388       // 总条数
389       total: 0,
390       // 订单排产表格数据
391       orderSchedulingList: [],
392       // 弹出层标题
393       title: "",
394       // 是否显示弹出层
395       open: false,
396       // 查询参数
397       queryParams: {
398         pageNum: 1,
399         pageSize: 10,
2aea64 400         orderNo: null,
d9cf6b 401         engineNo: null,
J 402         productType: null,
403         model: null,
404         productionStatus: null,
405         workingHours: null,
406         currentWorkstation: null,
407         qualityStatus: null,
408         whetherOrPrint: null,
409         report10: null,
410         report20: null,
2aea64 411         combinedBoxTime: null,
J 412         finalAssemblyTime: null,
d9cf6b 413         operator: null,
d2b752 414         operateTime: null,
2aea64 415         status: null,
J 416         spareField1: null,
417         spareField2: null,
418         spareField3: null,
419         spareField4: null,
420         createUser: null,
421         updateUser: null,
d2b752 422         remarks: null,
423         dateConditions: [],
d9cf6b 424       },
J 425       // 表单参数
426       form: {},
427       // 表单校验
428       rules: {
2aea64 429         id: [
J 430           { required: true, message: "ID不能为空", trigger: "blur" }
431         ],
1391b3 432       },
433       pickerOptions: {
434         shortcuts: [{
435           text: '最近一周',
436           onClick(picker) {
437             const end = new Date();
438             const start = new Date();
439             start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
440             picker.$emit('pick', [start, end]);
441           }
442         }, {
443           text: '最近一个月',
444           onClick(picker) {
445             const end = new Date();
446             const start = new Date();
447             start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
448             picker.$emit('pick', [start, end]);
449           }
450         }, {
451           text: '最近三个月',
452           onClick(picker) {
453             const end = new Date();
454             const start = new Date();
455             start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
456             picker.$emit('pick', [start, end]);
457           }
458         }]
459       },
460       value1: [new Date(2000, 10, 10, 10, 10), new Date(2000, 10, 11, 10, 10)],
461       value2: ''
d9cf6b 462     };
J 463   },
464   created() {
5f7e70 465     let workOrderNo = this.$route.query.workOrderNo;
466     this.queryParams.orderNo = workOrderNo
d9cf6b 467     this.getList();
J 468   },
469   methods: {
1391b3 470     advancedQuery(){
471       this.advancedShowSearch = (this.advancedShowSearch) ? this.advancedShowSearch = false : this.advancedShowSearch = true;
472     },
d9cf6b 473     /** 查询订单排产列表 */
J 474     getList() {
475       this.loading = true;
d2b752 476       console.log(this.queryParams)
d9cf6b 477       listOrderScheduling(this.queryParams).then(response => {
J 478         this.orderSchedulingList = response.rows;
479         this.total = response.total;
480         this.loading = false;
481       });
482     },
483     // 取消按钮
484     cancel() {
485       this.open = false;
486       this.reset();
487     },
488     // 表单重置
489     reset() {
490       this.form = {
2aea64 491         id: null,
J 492         orderNo: null,
d9cf6b 493         engineNo: null,
J 494         productType: null,
495         model: null,
496         productionStatus: null,
497         workingHours: null,
498         currentWorkstation: null,
499         qualityStatus: null,
500         whetherOrPrint: null,
501         report10: null,
502         report20: null,
2aea64 503         combinedBoxTime: null,
J 504         finalAssemblyTime: null,
d9cf6b 505         operator: null,
2aea64 506         operateTime: null,
J 507         status: null,
508         spareField1: null,
509         spareField2: null,
510         spareField3: null,
511         spareField4: null,
512         createUser: null,
513         createTime: null,
514         updateUser: null,
515         updateTime: null,
1391b3 516         remarks: null,
517         report30: null
d9cf6b 518       };
J 519       this.resetForm("form");
520     },
521     /** 搜索按钮操作 */
522     handleQuery() {
1de44b 523       this.queryParams.pageNum = 1;
524       this.getList();
1391b3 525       this.$modal.msgSuccess(this.queryParams.operateTime);
d9cf6b 526     },
J 527     /** 重置按钮操作 */
528     resetQuery() {
529       this.resetForm("queryForm");
530       this.handleQuery();
531     },
532     // 多选框选中数据
533     handleSelectionChange(selection) {
2aea64 534       this.ids = selection.map(item => item.id)
d9cf6b 535       this.single = selection.length!==1
J 536       this.multiple = !selection.length
537     },
538     /** 新增按钮操作 */
539     handleAdd() {
540       this.reset();
541       this.open = true;
542       this.titleName = "添加订单排产";
543     },
544     /** 修改按钮操作 */
545     handleUpdate(row) {
546       this.reset();
2aea64 547       const id = row.id || this.ids
J 548       getOrderScheduling(id).then(response => {
d9cf6b 549         this.form = response.data;
J 550         this.open = true;
551         this.titleName = "修改订单排产";
552       });
553     },
554     /** 提交按钮 */
555     submitForm() {
556       this.$refs["form"].validate(valid => {
557         if (valid) {
2aea64 558           if (this.form.id != null) {
d9cf6b 559             updateOrderScheduling(this.form).then(response => {
J 560               this.$modal.msgSuccess("修改成功");
561               this.open = false;
562               this.getList();
563             });
564           } else {
565             addOrderScheduling(this.form).then(response => {
566               this.$modal.msgSuccess("新增成功");
567               this.open = false;
568               this.getList();
569             });
570           }
571         }
572       });
573     },
574     /** 删除按钮操作 */
575     handleDelete(row) {
2aea64 576       const ids = row.id || this.ids;
J 577       this.$modal.confirm('是否确认删除订单排产编号为"' + ids + '"的数据项?').then(function() {
578         return delOrderScheduling(ids);
d9cf6b 579       }).then(() => {
J 580         this.getList();
581         this.$modal.msgSuccess("删除成功");
582       }).catch(() => {});
583     },
584     /** 导出按钮操作 */
585     handleExport() {
586       this.download('bs/orderScheduling/export', {
587         ...this.queryParams
588       }, `orderScheduling_${new Date().getTime()}.xlsx`)
589     }
590   }
591 };
592 </script>