hdy
7 天以前 b9df2fc5c64a1d989991655a9e42e4d1f2ec4075
提交 | 用户 | 时间
9f7aa7 1 <template>
2   <div class="app-container">
3     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
4       <el-form-item label="工单编号" prop="workOrderNo">
5         <el-input
6           v-model="queryParams.workOrderNo"
7           placeholder="请输入工单编号"
8           clearable
9           @keyup.enter.native="handleQuery"
10         />
11       </el-form-item>
12       <el-form-item label="总成序列号" prop="sfcCode">
13         <el-input
14           v-model="queryParams.sfcCode"
15           placeholder="请输入总成序列号"
16           clearable
17           @keyup.enter.native="handleQuery"
18         />
19       </el-form-item>
20       <el-form-item label="产品编码" prop="productCode">
21         <el-input
22           v-model="queryParams.productCode"
23           placeholder="请输入产品编码"
24           clearable
25           @keyup.enter.native="handleQuery"
26         />
27       </el-form-item>
28       <el-form-item label="状态" prop="status">
29         <el-select v-model="queryParams.status" placeholder="请选择状态" clearable>
30           <el-option
31             v-for="dict in dict.type.status"
32             :key="dict.value"
33             :label="dict.label"
34             :value="dict.value"
35           />
36         </el-select>
37       </el-form-item>
38       <el-form-item label="上线时间">
39         <el-date-picker
40           v-model="daterangeOnlineTime"
41           style="width: 340px"
42           value-format="yyyy-MM-dd HH:mm:ss"
43           type="datetimerange"
44           range-separator="-"
45           start-placeholder="开始日期"
46           end-placeholder="结束日期"
47         ></el-date-picker>
48       </el-form-item>
49       <el-form-item label="下线时间" prop="offlineTime">
50         <el-date-picker
51           v-model="daterangeOfflineTime"
52           style="width: 340px"
53           value-format="yyyy-MM-dd HH:mm:ss"
54           type="datetimerange"
55           range-separator="-"
56           start-placeholder="开始日期"
57           end-placeholder="结束日期"
58         ></el-date-picker>
59       </el-form-item>
60
61       <el-form-item style="float: right; margin-right: 90px">
62         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
63         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
64       </el-form-item>
65     </el-form>
66
67     <el-row :gutter="10" class="mb8" >
68       <el-col :span="1.5">
69         <el-button
70           type="primary"
71           plain
72           icon="el-icon-plus"
73           size="mini"
74           @click="handleAdd"
75           v-hasPermi="['main:scheduling:add']"
76         >新增</el-button>
77       </el-col>
78       <el-col :span="1.5">
79         <el-button
80           type="success"
81           plain
82           icon="el-icon-edit"
83           size="mini"
84           :disabled="single"
85           @click="handleUpdate"
86           v-hasPermi="['main:scheduling:edit']"
87         >修改</el-button>
88       </el-col>
89       <el-col :span="1.5">
90         <el-button
91           type="danger"
92           plain
93           icon="el-icon-delete"
94           size="mini"
95           :disabled="multiple"
96           @click="handleDelete"
97           v-hasPermi="['main:scheduling:remove']"
98         >删除</el-button>
99       </el-col>
100       <el-col :span="1.5">
101         <el-button
102           type="warning"
103           plain
104           icon="el-icon-download"
105           size="mini"
106           @click="handleExport"
107           v-hasPermi="['main:scheduling:export']"
108         >导出</el-button>
109       </el-col>
110 <!--      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
111     </el-row>
112
113     <el-table v-loading="loading" :data="schedulingList" @selection-change="handleSelectionChange">
114       <el-table-column type="selection" width="55" align="center" />
226f41 115       <el-table-column label="工单编号" align="center" prop="workOrderNo" width="120"/>
9f7aa7 116       <el-table-column label="总成序列号" width="180px" align="center" prop="sfcCode" />
226f41 117       <el-table-column label="产品编码" align="center" prop="productCode" width="120"/>
9f7aa7 118       <el-table-column label="上线时间" align="center" prop="onlineTime" width="180">
119         <template slot-scope="scope">
120           <span>{{ parseTime(scope.row.onlineTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
121         </template>
122       </el-table-column>
123       <el-table-column label="下线时间" align="center" prop="offlineTime" width="180">
124         <template slot-scope="scope">
125           <span>{{ parseTime(scope.row.offlineTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
126         </template>
127       </el-table-column>
128       <el-table-column label="质量状态" align="center" prop="qualityStatus">
129         <template slot-scope="scope">
130           <dict-tag :options="dict.type.product_status" :value="scope.row.qualityStatus"/>
131         </template>
132       </el-table-column>
133       <el-table-column label="状态" align="center" prop="status">
134         <template slot-scope="scope">
135           <dict-tag :options="dict.type.status" :value="scope.row.status"/>
136         </template>
137       </el-table-column>
138       <el-table-column label="更新用户" align="center" prop="updateBy" />
139       <el-table-column label="更新时间" align="center" prop="updateTime" width="180">
140         <template slot-scope="scope">
141           <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
142         </template>
143       </el-table-column>
144       <el-table-column label="备注" width="180px" show-overflow-tooltip align="center" prop="remarks" />
145 <!--      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
146 <!--        <template slot-scope="scope">-->
147 <!--          <el-button-->
148 <!--            size="mini"-->
149 <!--            type="text"-->
150 <!--            icon="el-icon-edit"-->
151 <!--            @click="handleUpdate(scope.row)"-->
152 <!--            v-hasPermi="['main:scheduling:edit']"-->
153 <!--          >修改</el-button>-->
154 <!--          <el-button-->
155 <!--            size="mini"-->
156 <!--            type="text"-->
157 <!--            icon="el-icon-delete"-->
158 <!--            @click="handleDelete(scope.row)"-->
159 <!--            v-hasPermi="['main:scheduling:remove']"-->
160 <!--          >删除</el-button>-->
161 <!--        </template>-->
162 <!--      </el-table-column>-->
163     </el-table>
164
165     <pagination
166       v-show="total>0"
167       :total="total"
168       :page.sync="queryParams.pageNum"
169       :limit.sync="queryParams.pageSize"
170       @pagination="getList"
171     />
172
173     <!-- 添加或修改订单排产对话框 -->
174     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
175       <el-form ref="form" :model="form" :rules="rules" label-width="100px">
176         <el-form-item label="工单编号" prop="workOrderNo">
177           <el-select v-model="form.workOrderNo" filterable placeholder="请选择工单编号" style="width: 360px">
178             <el-option
179               v-for="item in workOrderNoOptions"
180               :key="item.value"
181               :label="item"
182               :value="item">
183             </el-option>
184           </el-select>
185         </el-form-item>
186
187         <el-form-item label="总成序列号" prop="sfcCode">
188           <el-input v-model="form.sfcCode" placeholder="请输入总成序列号" />
189         </el-form-item>
190         <el-form-item label="产品编码" prop="productCode">
191           <el-input v-model="form.productCode" placeholder="请输入产品编码" />
192         </el-form-item>
193
194         <el-form-item label="质量状态" prop="qualityStatus" v-if = updateFlag>
195           <el-radio-group v-model="form.qualityStatus">
196             <el-radio
197               v-for="dict in dict.type.product_status"
198               :key="dict.value"
199               :label="dict.value"
200             >{{dict.label}}</el-radio>
201           </el-radio-group>
202         </el-form-item>
203         <el-form-item label="状态" prop="status" v-if = updateFlag>
204           <el-radio-group v-model="form.status">
205             <el-radio
206               v-for="dict in dict.type.status"
207               :key="dict.value"
208               :label="dict.value"
209             >{{dict.label}}</el-radio>
210           </el-radio-group>
211         </el-form-item>
212         <el-form-item label="备注" prop="remarks">
213           <el-input
214             type="textarea"
215             placeholder="请输入备注"
216             v-model="form.remarks"
217             maxlength="30"
218             show-word-limit
219           >
220           </el-input>
221         </el-form-item>
222       </el-form>
223       <div slot="footer" class="dialog-footer">
224         <el-button type="primary" @click="submitForm">确 定</el-button>
225         <el-button @click="cancel">取 消</el-button>
226       </div>
227     </el-dialog>
228   </div>
229 </template>
230
231 <script>
232 import { listScheduling, getScheduling, delScheduling, addScheduling, updateScheduling } from "@/api/main/om/scheduling";
233 import {getOrderList} from "@/api/main/om/info";
234
235 export default {
236   name: "Scheduling",
237   dicts: ['product_status', 'status'],
238   data() {
239     return {
240       workOrderNoOptions: [],
241       addFlag : false,
242       updateFlag : false,
243       // 遮罩层
244       loading: true,
245       // 选中数组
246       ids: [],
247       // 非单个禁用
248       single: true,
249       // 非多个禁用
250       multiple: true,
251       // 显示搜索条件
252       showSearch: true,
253       // 总条数
254       total: 0,
255       // 订单排产表格数据
256       schedulingList: [],
257       // 弹出层标题
258       title: "",
259       // 是否显示弹出层
260       open: false,
261       // 备注时间范围
262       daterangeOnlineTime: [],
263       daterangeOfflineTime: [],
264       // 查询参数
265       queryParams: {
266         pageNum: 1,
267         pageSize: 10,
268         workOrderNo: null,
269         sfcCode: null,
270         productCode: null,
271         onlineTime: null,
272         offlineTime: null,
273         status: null,
274       },
275       // 表单参数
276       form: {},
277       // 表单校验
278       rules: {
279         workOrderNo: [
280           { required: true, message: "工单编号不能为空", trigger: "change" }
281         ],
282         sfcCode: [
283           { required: true, message: "总成序列号不能为空", trigger: "blur" }
284         ],
285         productCode: [
286           { required: true, message: "产品编码不能为空", trigger: "blur" }
287         ],
288       }
289     };
290   },
291   created() {
292     this.getList();
293   },
294   methods: {
295     getOrderList(){
296       getOrderList().then(res => {
297         console.log('res',res)
298         if (res.code === 200){
299           this.workOrderNoOptions = res.data
300           console.log('this.workOrderNoOptions',this.workOrderNoOptions)
301         }
302       })
303     },
304     /** 查询订单排产列表 */
305     getList() {
306       this.loading = true;
307       this.queryParams.params = {};
308       if (null != this.daterangeOnlineTime && '' != this.daterangeOnlineTime) {
309         this.queryParams.params["beginOnlineTime"] = this.daterangeOnlineTime[0];
310         this.queryParams.params["endOnlineTime"] = this.daterangeOnlineTime[1];
311       }
312       if (null != this.daterangeOfflineTime && '' != this.daterangeOfflineTime) {
313         this.queryParams.params["beginOfflineTime"] = this.daterangeOfflineTime[0];
314         this.queryParams.params["endOfflineTime"] = this.daterangeOfflineTime[1];
315       }
316       listScheduling(this.queryParams).then(response => {
317         this.schedulingList = response.rows;
318         this.total = response.total;
319         this.loading = false;
320       });
321     },
322     // 取消按钮
323     cancel() {
324       this.open = false;
325       this.reset();
326     },
327     // 表单重置
328     reset() {
329       this.form = {
330         id: null,
331         workOrderNo: null,
332         sfcCode: null,
333         productCode: null,
334         onlineTime: null,
335         offlineTime: null,
336         qualityStatus: null,
337         status: null,
338         createBy: null,
339         createTime: null,
340         updateBy: null,
341         updateTime: null,
342         remarks: null
343       };
344       this.resetForm("form");
345       this.addFlag = false
346       this.updateFlag = false
347     },
348     /** 搜索按钮操作 */
349     handleQuery() {
350       this.queryParams.pageNum = 1;
351       this.getList();
352     },
353     /** 重置按钮操作 */
354     resetQuery() {
355       this.daterangeOnlineTime = [];
356       this.daterangeOfflineTime = [];
357       this.resetForm("queryForm");
358       this.handleQuery();
359     },
360     // 多选框选中数据
361     handleSelectionChange(selection) {
362       this.ids = selection.map(item => item.id)
363       this.single = selection.length!==1
364       this.multiple = !selection.length
365     },
366     /** 新增按钮操作 */
367     handleAdd() {
368       this.reset();
369       this.getOrderList()
370       this.addFlag = true
371       this.open = true;
372       this.title = "添加订单排产";
373     },
374     /** 修改按钮操作 */
375     handleUpdate(row) {
376       this.reset();
377       this.updateFlag = true
378       const id = row.id || this.ids
379       getScheduling(id).then(response => {
380         this.form = response.data;
381         this.open = true;
382         this.title = "修改订单排产";
383       });
384       this.getOrderList()
385     },
386     /** 提交按钮 */
387     submitForm() {
388       this.$refs["form"].validate(valid => {
389         if (valid) {
390           if (this.form.id != null) {
391             updateScheduling(this.form).then(response => {
392               this.$modal.msgSuccess("修改成功");
393               this.open = false;
394               this.getList();
395             });
396           } else {
397             addScheduling(this.form).then(response => {
398               this.$modal.msgSuccess("新增成功");
399               this.open = false;
400               this.getList();
401             });
402           }
403         }
404       });
405     },
406     /** 删除按钮操作 */
407     handleDelete(row) {
408       const ids = row.id || this.ids;
409       this.$modal.confirm('是否确认删除?').then(function() {
410         return delScheduling(ids);
411       }).then(() => {
412         this.getList();
413         this.$modal.msgSuccess("删除成功");
414       }).catch(() => {});
415     },
416     /** 导出按钮操作 */
417     handleExport() {
418       this.download('main/scheduling/export', {
419         ...this.queryParams
420       }, `scheduling_${new Date().getTime()}.xlsx`)
421     }
422   }
423 };
424 </script>