admin
2024-11-26 dea0a32cf795a33bf4e4cbdb8a3cbae2897ba698
提交 | 用户 | 时间
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       :gridData="gridData"
197       @select-product="handleSelectProduct"
198       @update:visible="dialogTableVisible = $event"
199     />
849473 200   </div>
A 201 </template>
202
203 <script>
204 import { listRouteInfo, getRouteInfo, delRouteInfo, addRouteInfo, updateRouteInfo } from "@/api/main/bs/routeInfo";
dea0a3 205 import ProductSelector from "./ProductSelector.vue";
849473 206 export default {
dea0a3 207   components: {
A 208     ProductSelector
209   },
849473 210   name: "RouteInfo",
A 211   dicts: ['sys_normal_disable'],
212   data() {
213     return {
dea0a3 214       multipleSelection: [],
A 215       gridData: [{
216         date: '2016-05-02',
217         name: '王一虎',
218         address: '上海市普陀区金沙江路 1518 弄'
219       }, {
220         date: '2016-05-04',
221         name: '王二虎',
222         address: '上海市普陀区金沙江路 1518 弄'
223       }, {
224         date: '2016-05-01',
225         name: '王三虎',
226         address: '上海市普陀区金沙江路 1518 弄'
227       }, {
228         date: '2016-05-03',
229         name: '王四虎',
230         address: '上海市普陀区金沙江路 1518 弄'
231       }],
232       dialogTableVisible: false,
849473 233       advancedSearchVisible: false,
A 234       // 遮罩层
235       loading: true,
236       // 选中数组
237       ids: [],
238       // 非单个禁用
239       single: true,
240       // 非多个禁用
241       multiple: true,
242       // 显示搜索条件
243       showSearch: true,
244       // 总条数
245       total: 0,
246       // 工艺路线表格数据
247       routeInfoList: [],
248       // 弹出层标题
249       title: "",
250       // 是否显示弹出层
251       open: false,
252       // 查询参数
253       queryParams: {
254         pageNum: 1,
255         pageSize: 10,
256         routeCode: null,
257         routeName: null,
258         productCode: null,
259         productName: null,
260         version: null,
261         status: null,
262       },
263       // 表单参数
264       form: {},
265       // 表单校验
266       rules: {
267         id: [
268           { required: true, message: "主键id不能为空", trigger: "blur" }
269         ],
270         routeCode: [
271           { required: true, message: "流程编码不能为空", trigger: "blur" }
272         ],
273         productCode: [
274           { required: true, message: "产品编码不能为空", trigger: "blur" }
275         ],
276       }
277     };
278   },
279   created() {
280     this.getList();
281   },
282   methods: {
dea0a3 283     handleSelectProduct(selectedProduct) {
A 284       this.form.productCode = selectedProduct.date;  // 假设你需要的是日期字段
285       this.form.productName = selectedProduct.name;  // 假设你需要的是姓名字段
286     },
849473 287     toggleAdvancedSearch() {
A 288       this.advancedSearchVisible = !this.advancedSearchVisible;
289     },
290     /** 查询工艺路线列表 */
291     getList() {
292       this.loading = true;
293       listRouteInfo(this.queryParams).then(response => {
294         this.routeInfoList = response.rows;
295         this.total = response.total;
296         this.loading = false;
297       });
298     },
299     // 取消按钮
300     cancel() {
301       this.open = false;
302       this.reset();
303     },
304     // 表单重置
305     reset() {
306       this.form = {
307         id: null,
308         routeCode: null,
309         routeName: null,
310         productCode: null,
311         productName: null,
312         version: null,
313         status: "0",
314         dataSource: null,
315         remark: null,
316         createBy: null,
317         createTime: null,
318         updateBy: null,
319         updateTime: null,
320         delFlag: null
321       };
322       this.resetForm("form");
323     },
324     /** 搜索按钮操作 */
325     handleQuery() {
326       this.queryParams.pageNum = 1;
327       this.getList();
328     },
329     /** 重置按钮操作 */
330     resetQuery() {
331       this.resetForm("queryForm");
332       this.handleQuery();
333     },
334     // 多选框选中数据
335     handleSelectionChange(selection) {
336       this.ids = selection.map(item => item.id)
337       this.single = selection.length!==1
338       this.multiple = !selection.length
339     },
340     /** 新增按钮操作 */
341     handleAdd() {
342       this.reset();
343       this.open = true;
344       this.title = "添加工艺路线";
345     },
346     /** 修改按钮操作 */
347     handleUpdate(row) {
348       this.reset();
349       const id = row.id || this.ids
350       getRouteInfo(id).then(response => {
351         this.form = response.data;
352         this.open = true;
353         this.title = "修改工艺路线";
354       });
355     },
356     /** 提交按钮 */
357     submitForm() {
358       this.$refs["form"].validate(valid => {
359         if (valid) {
360           if (this.form.id != null) {
361             updateRouteInfo(this.form).then(response => {
362               this.$modal.msgSuccess("修改成功");
363               this.open = false;
364               this.getList();
365             });
366           } else {
367             addRouteInfo(this.form).then(response => {
368               this.$modal.msgSuccess("新增成功");
369               this.open = false;
370               this.getList();
371             });
372           }
373         }
374       });
375     },
376     /** 删除按钮操作 */
377     handleDelete(row) {
378       const ids = row.id || this.ids;
379       this.$modal.confirm('是否确认删除').then(function() {
380         return delRouteInfo(ids);
381       }).then(() => {
382         this.getList();
383         this.$modal.msgSuccess("删除成功");
384       }).catch(() => {});
385     },
386     /** 导出按钮操作 */
387     handleExport() {
388       this.download('bs/routeInfo/export', {
389         ...this.queryParams
390       }, `routeInfo_${new Date().getTime()}.xlsx`)
391     }
392   }
393 };
394 </script>