| 
					
				 | 
			
			
				@@ -0,0 +1,189 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <template-page ref="pageRef" :get-list="getList" :export-list="exportList" :operation="operation()" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :column-parsing="columnParsing" :options-evens-group="optionsEvensGroup"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-dialog title="新增参考" :visible.sync="dialogVisible" width="460px" :before-close="handleClose"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form ref="formName" v-if="dialogVisible" size="mini" :model="form" label-width="80px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item label="物料" prop="materialNumber" :rules="[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          { required: true, message: '请选择物料', trigger: 'blur' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ]"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-select v-model="form.materialNumber" placeholder="请选择物料" filterable style="width:100%"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-option v-for="(item, index) in selectList" :key="index" :label="item.name + ' - ' + item.specification" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :value="item.number"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item label="成本价" prop="costPrice" :rules="[ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          { required: true, message: '请填写成本价', trigger: 'blur' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ]"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-input v-model="form.costPrice" type="number"></el-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <span slot="footer" class="dialog-footer"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-button size="mini" @click="handleClose">取 消</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-button size="mini" type="primary" @click="save">确 定</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </el-dialog> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </template-page> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import TemplatePage from '@/components/template/template-page-1.vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import import_mixin from '@/components/template/import_mixin.js' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { materialReferPriceList, materialReferPriceListExport, materialReferPriceDetail, materialReferPriceSave, materialReferPriceDelete, materialReferPriceDownload, materialReferPriceImport } from '@/api/referCostPrice' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { getMaterialListV2 } from '@/api/basic_data/material' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  components: { TemplatePage, }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  mixins: [import_mixin], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 事件组合 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      optionsEvensGroup: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              name: '新增', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              click: this.openForm 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              name: '下载模版', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              click: () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                materialReferPriceDownload({}, `${this.$route.meta.title}`) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  .then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    this.$message({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      message: '下载成功', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      type: 'success' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  .catch(err => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    this.$message.error('下载失败') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              name: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              render: this.importButton(materialReferPriceImport, '导入') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 表格属性 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      tableAttributes: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 启用勾选列 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        selectColumn: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 表格事件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      tableEvents: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'selection-change': this.selectionChange 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      recordSelected: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      dialogVisible: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      form: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        materialNumber: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        costPrice: "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      selectList: [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 列表请求函数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getList: materialReferPriceList, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 列表导出函数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    exportList: materialReferPriceListExport, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 表格列解析渲染数据更改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    columnParsing(item, defaultData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return defaultData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 监听勾选变化 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    selectionChange(data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.recordSelected = data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    openForm() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const loading = this.$loading({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        lock: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        text: '正在打开', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        spinner: 'el-icon-loading', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        background: 'rgba(0, 0, 0, 0.7)' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      getMaterialListV2({ "pageNum": 1, "pageSize": -1, "params": [] }).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.selectList = res.data.records 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.dialogVisible = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        loading.close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }).catch(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        loading.close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    handleClose() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.dialogVisible = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.form = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        materialNumber: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        costPrice: "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    operation() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return (h, { row, index, column }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class='operation-btns'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-button 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              size='mini' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              type='text' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              onClick={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                materialReferPriceDetail({ id: row.id }).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  this.form = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    id: res.data.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    materialNumber: res.data.materialNumber, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    costPrice: res.data.costPrice 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  this.openForm() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              编辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-popconfirm 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              onConfirm={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                materialReferPriceDelete({ id: row.id }).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  this.$successMsg('删除成功') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  this.$refs.pageRef.refreshList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              title='删除吗?' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-button slot='reference' size='mini' type='text'> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-popconfirm> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    save() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.$refs.formName.validate((valid) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (valid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          materialReferPriceSave({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ...this.form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }).then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.handleClose() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.$refs.pageRef.refreshList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.$message({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              type: 'success', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              message: '保存成功!' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style lang="scss" scoped></style> 
			 |