hdy
2 天以前 1c50cb5546715fa21496fbdf2bdacb7ae8836b8a
提交 | 用户 | 时间
849473 1 <template>
A 2   <div class="app-container">
3     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
4       <el-form-item label="流程编码" prop="routeCode">
5         <el-input
6           v-model="queryParams.routeCode"
7           placeholder="请输入流程编码"
8           clearable
9           @keyup.enter.native="handleQuery"
10         />
11       </el-form-item>
12       <el-form-item label="产品编码" prop="productCode">
13         <el-input
14           v-model="queryParams.productCode"
15           placeholder="请输入产品编码"
16           clearable
17           @keyup.enter.native="handleQuery"
18         />
19       </el-form-item>
20       <el-form-item style="float: right">
21         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
22         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
23         <el-button icon="el-icon-setting" size="mini" @click="toggleAdvancedSearch">高级查询</el-button>
24       </el-form-item>
25       <transition name="fade">
26         <div v-if="advancedSearchVisible" class="advanced-search">
27           <el-form-item label="产品名称" prop="productName">
28             <el-input
29               v-model="queryParams.productName"
30               placeholder="请输入产品名称"
31               clearable
32               @keyup.enter.native="handleQuery"
33             />
34           </el-form-item>
35           <el-form-item label="流程名称" prop="routeName">
36             <el-input
37               v-model="queryParams.routeName"
38               placeholder="请输入流程名称"
39               clearable
40               @keyup.enter.native="handleQuery"
41             />
42           </el-form-item>
43           <el-form-item label="版本" prop="version">
44             <el-input
45               v-model="queryParams.version"
46               placeholder="请输入版本"
47               clearable
48               @keyup.enter.native="handleQuery"
49             />
50           </el-form-item>
51           <el-form-item label="状态" prop="status">
52             <el-select v-model="queryParams.status" placeholder="请选择状态" clearable>
53               <el-option
54                 v-for="dict in dict.type.sys_normal_disable"
55                 :key="dict.value"
56                 :label="dict.label"
57                 :value="dict.value"
58               />
59             </el-select>
60           </el-form-item>
61         </div>
62       </transition>
63     </el-form>
64
65     <el-row :gutter="10" class="mb8">
66       <el-col :span="1.5">
67         <el-button
68           type="primary"
69           plain
70           icon="el-icon-plus"
71           size="mini"
72           @click="handleAdd"
73           v-hasPermi="['bs:routeInfo:add']"
74         >新增</el-button>
75       </el-col>
76       <el-col :span="1.5">
77         <el-button
78           type="success"
79           plain
80           icon="el-icon-edit"
81           size="mini"
82           :disabled="single"
83           @click="handleUpdate"
84           v-hasPermi="['bs:routeInfo:edit']"
85         >修改</el-button>
86       </el-col>
87       <el-col :span="1.5">
88         <el-button
89           type="danger"
90           plain
91           icon="el-icon-delete"
92           size="mini"
93           :disabled="multiple"
94           @click="handleDelete"
95           v-hasPermi="['bs:routeInfo:remove']"
96         >删除</el-button>
97       </el-col>
98       <el-col :span="1.5">
99         <el-button
100           type="warning"
101           plain
102           icon="el-icon-download"
103           size="mini"
104           @click="handleExport"
105           v-hasPermi="['bs:routeInfo:export']"
106         >导出</el-button>
107       </el-col>
108     </el-row>
109
110     <el-table border v-loading="loading" :data="routeInfoList" @selection-change="handleSelectionChange">
111       <el-table-column type="selection" width="55" align="center" />
112 <!--      <el-table-column show-overflow-tooltip="true" label="流程编码" align="center" prop="routeCode" />-->
113       <el-table-column label="流程编码" align="center" :show-overflow-tooltip="true">
114         <template slot-scope="scope">
115           <router-link :to="{path: '/main/route-data/index/', query: {routeCode: scope.row.routeCode} }" class="link-type">
116             <span>{{ scope.row.routeCode }}</span>
117           </router-link>
118         </template>
119       </el-table-column>
dea0a3 120       <el-table-column :show-overflow-tooltip="true" label="流程名称" align="center" prop="routeName" />
A 121       <el-table-column :show-overflow-tooltip="true" label="产品编码" align="center" prop="productCode" />
122       <el-table-column :show-overflow-tooltip="true" label="产品名称" align="center" prop="productName" />
123       <el-table-column :show-overflow-tooltip="true" label="版本" align="center" prop="version" />
849473 124       <el-table-column label="状态" align="center" prop="status">
A 125         <template slot-scope="scope">
126           <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
127         </template>
128       </el-table-column>
dea0a3 129       <el-table-column :show-overflow-tooltip="true" label="数据来源" align="center" prop="dataSource" />
A 130       <el-table-column :show-overflow-tooltip="true" label="备注" align="center" prop="remark" />
131       <el-table-column :show-overflow-tooltip="true" label="创建用户" align="center" prop="createBy" />
849473 132       <el-table-column label="创建时间" align="center" prop="createTime" width="180">
A 133       </el-table-column>
dea0a3 134       <el-table-column :show-overflow-tooltip="true" label="更改用户" align="center" prop="updateBy" />
849473 135       <el-table-column label="更改时间" align="center" prop="updateTime" width="180">
A 136       </el-table-column>
137     </el-table>
138
139     <pagination
140       v-show="total>0"
141       :total="total"
142       :page.sync="queryParams.pageNum"
143       :limit.sync="queryParams.pageSize"
144       @pagination="getList"
145     />
146
147     <!-- 添加或修改工艺路线对话框 -->
148     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
149       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
150 <!--        <el-form-item label="主键id" prop="id">-->
151 <!--          <el-input v-model="form.id" placeholder="请输入主键id" />-->
152 <!--        </el-form-item>-->
153         <el-form-item label="流程编码" prop="routeCode">
154           <el-input v-model="form.routeCode" placeholder="请输入流程编码" />
155         </el-form-item>
156         <el-form-item label="流程名称" prop="routeName">
157           <el-input v-model="form.routeName" placeholder="请输入流程名称" />
158         </el-form-item>
159         <el-form-item label="产品编码" prop="productCode">
dea0a3 160           <el-input v-model="form.productCode" placeholder="请选择产品编码" readonly>
A 161             <template #append>
162               <el-button @click="dialogTableVisible = true">选择</el-button>
163             </template>
164           </el-input>
849473 165         </el-form-item>
A 166         <el-form-item label="产品名称" prop="productName">
167           <el-input v-model="form.productName" placeholder="请输入产品名称" />
168         </el-form-item>
169         <el-form-item label="版本" prop="version">
170           <el-input v-model="form.version" placeholder="请输入版本" />
171         </el-form-item>
172         <el-form-item label="状态" prop="status">
173           <el-radio-group v-model="form.status">
174             <el-radio
175               v-for="dict in dict.type.sys_normal_disable"
176               :key="dict.value"
177               :label="dict.value"
178             >{{dict.label}}</el-radio>
179           </el-radio-group>
180         </el-form-item>
181 <!--        <el-form-item label="数据来源" prop="dataSource">-->
182 <!--          <el-input v-model="form.dataSource" placeholder="请输入数据来源" />-->
183 <!--        </el-form-item>-->
184         <el-form-item label="备注" prop="remark">
185           <el-input v-model="form.remark" placeholder="请输入备注" />
186         </el-form-item>
187       </el-form>
188       <div slot="footer" class="dialog-footer">
189         <el-button type="primary" @click="submitForm">确 定</el-button>
190         <el-button @click="cancel">取 消</el-button>
191       </div>
192     </el-dialog>
dea0a3 193     <!-- 产品选择器组件 -->
A 194     <ProductSelector
195       :visible="dialogTableVisible"
196       @select-product="handleSelectProduct"
197       @update:visible="dialogTableVisible = $event"
198     />
849473 199   </div>
A 200 </template>
201
202 <script>
203 import { listRouteInfo, getRouteInfo, delRouteInfo, addRouteInfo, updateRouteInfo } from "@/api/main/bs/routeInfo";
dea0a3 204 import ProductSelector from "./ProductSelector.vue";
849473 205 export default {
dea0a3 206   components: {
A 207     ProductSelector
208   },
849473 209   name: "RouteInfo",
A 210   dicts: ['sys_normal_disable'],
211   data() {
212     return {
dea0a3 213       multipleSelection: [],
A 214       dialogTableVisible: false,
849473 215       advancedSearchVisible: false,
A 216       // 遮罩层
217       loading: true,
218       // 选中数组
219       ids: [],
220       // 非单个禁用
221       single: true,
222       // 非多个禁用
223       multiple: true,
224       // 显示搜索条件
225       showSearch: true,
226       // 总条数
227       total: 0,
228       // 工艺路线表格数据
229       routeInfoList: [],
230       // 弹出层标题
231       title: "",
232       // 是否显示弹出层
233       open: false,
234       // 查询参数
235       queryParams: {
236         pageNum: 1,
237         pageSize: 10,
238         routeCode: null,
239         routeName: null,
240         productCode: null,
241         productName: null,
242         version: null,
243         status: null,
244       },
245       // 表单参数
246       form: {},
247       // 表单校验
248       rules: {
249         id: [
250           { required: true, message: "主键id不能为空", trigger: "blur" }
251         ],
252         routeCode: [
253           { required: true, message: "流程编码不能为空", trigger: "blur" }
254         ],
255         productCode: [
256           { required: true, message: "产品编码不能为空", trigger: "blur" }
257         ],
258       }
259     };
260   },
261   created() {
262     this.getList();
263   },
264   methods: {
dea0a3 265     handleSelectProduct(selectedProduct) {
d6049c 266       console.log(selectedProduct)
A 267       this.form.productCode = selectedProduct.materialCode;  // 假设你需要的是日期字段
268       this.form.productName = selectedProduct.materialName;  // 假设你需要的是姓名字段
dea0a3 269     },
849473 270     toggleAdvancedSearch() {
A 271       this.advancedSearchVisible = !this.advancedSearchVisible;
272     },
273     /** 查询工艺路线列表 */
274     getList() {
275       this.loading = true;
276       listRouteInfo(this.queryParams).then(response => {
277         this.routeInfoList = response.rows;
278         this.total = response.total;
279         this.loading = false;
280       });
281     },
282     // 取消按钮
283     cancel() {
284       this.open = false;
285       this.reset();
286     },
287     // 表单重置
288     reset() {
289       this.form = {
290         id: null,
291         routeCode: null,
292         routeName: null,
293         productCode: null,
294         productName: null,
295         version: null,
296         status: "0",
297         dataSource: null,
298         remark: null,
299         createBy: null,
300         createTime: null,
301         updateBy: null,
302         updateTime: null,
303         delFlag: null
304       };
305       this.resetForm("form");
306     },
307     /** 搜索按钮操作 */
308     handleQuery() {
309       this.queryParams.pageNum = 1;
310       this.getList();
311     },
312     /** 重置按钮操作 */
313     resetQuery() {
314       this.resetForm("queryForm");
315       this.handleQuery();
316     },
317     // 多选框选中数据
318     handleSelectionChange(selection) {
319       this.ids = selection.map(item => item.id)
320       this.single = selection.length!==1
321       this.multiple = !selection.length
322     },
323     /** 新增按钮操作 */
324     handleAdd() {
325       this.reset();
326       this.open = true;
327       this.title = "添加工艺路线";
328     },
329     /** 修改按钮操作 */
330     handleUpdate(row) {
331       this.reset();
332       const id = row.id || this.ids
333       getRouteInfo(id).then(response => {
334         this.form = response.data;
335         this.open = true;
336         this.title = "修改工艺路线";
337       });
338     },
339     /** 提交按钮 */
340     submitForm() {
341       this.$refs["form"].validate(valid => {
342         if (valid) {
343           if (this.form.id != null) {
344             updateRouteInfo(this.form).then(response => {
345               this.$modal.msgSuccess("修改成功");
346               this.open = false;
347               this.getList();
348             });
349           } else {
350             addRouteInfo(this.form).then(response => {
351               this.$modal.msgSuccess("新增成功");
352               this.open = false;
353               this.getList();
354             });
355           }
356         }
357       });
358     },
359     /** 删除按钮操作 */
360     handleDelete(row) {
361       const ids = row.id || this.ids;
362       this.$modal.confirm('是否确认删除').then(function() {
363         return delRouteInfo(ids);
364       }).then(() => {
365         this.getList();
366         this.$modal.msgSuccess("删除成功");
367       }).catch(() => {});
368     },
369     /** 导出按钮操作 */
370     handleExport() {
371       this.download('bs/routeInfo/export', {
372         ...this.queryParams
373       }, `routeInfo_${new Date().getTime()}.xlsx`)
374     }
375   }
376 };
377 </script>