<style scoped>
|
.title .el-button {
|
height: 32px;
|
border: 1px solid rgba(190, 190, 190, 0.44);
|
box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
|
padding: 0 12px;
|
}
|
|
.title {
|
margin-bottom: 10px;
|
padding: 0 20px;
|
}
|
|
.title * {
|
font-size: 16px;
|
}
|
|
.choose {
|
padding: 21px 24px;
|
display: flex;
|
align-items: center;
|
background-color: #fff;
|
border-bottom: 3px solid rgb(245, 247, 251);
|
}
|
|
.choose * {
|
font-size: 14px;
|
}
|
|
.choose .el-button {
|
height: 32px;
|
border: 1px solid rgba(190, 190, 190, 0.44);
|
box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
|
padding: 0 12px;
|
}
|
|
.thing {
|
width: 100%;
|
height: calc(100% - 120px);
|
background-color: #fff;
|
display: flex;
|
}
|
|
.thing .left {
|
width: 295px;
|
height: calc(100% - 20px);
|
border-right: 3px solid rgb(245, 247, 251);
|
padding: 16px;
|
}
|
|
.thing .left .custom-tree-node span {
|
font-size: 14px;
|
}
|
|
.thing .left .custom-tree-node {
|
flex: 1;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
font-size: 14px;
|
padding-right: 8px;
|
}
|
|
.node_i {
|
color: orange;
|
}
|
|
.el-icon-delete {
|
display: none;
|
color: #004EA2;
|
}
|
|
.custom-tree-node:hover .el-icon-delete {
|
display: inline;
|
}
|
|
.thing .right {
|
width: calc(100% - 305px);
|
height: calc(100% - 25px);
|
overflow: hidden;
|
padding: 10px;
|
}
|
|
.table_do {
|
color: #004ea0;
|
cursor: pointer;
|
}
|
</style>
|
<style>
|
.record_content .title .el-button * {
|
font-size: 14px;
|
}
|
|
.record_content .title .el-button--default {
|
color: #004EA2;
|
}
|
|
.record_content .thing .left .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
|
background: rgba(58, 124, 253, 0.2);
|
color: #004EA2;
|
}
|
|
.record_content .el-tree-node__content {
|
height: 30px;
|
border-radius: 2px;
|
}
|
</style>
|
|
<template>
|
<div class="record_content">
|
<div class="title">
|
<el-row>
|
<el-col :span="12" style="line-height: 32px;">自检项目维护</el-col>
|
<el-col :span="12" style="text-align: right;">
|
<el-button type="primary" icon="el-icon-plus" style="background: #004EA2;" @click="addend">新增</el-button>
|
<el-button icon="el-icon-delete" @click="dels">删除</el-button>
|
</el-col>
|
</el-row>
|
</div>
|
<div class="choose">
|
<span>类型:</span>
|
<el-select v-model="search.type" size="small" @change="TYpe" placeholder="请选择" style="width: 224px;margin-right: 30px;">
|
<el-option v-for="(a, ai) in bigType" :key="ai" :value="a">
|
</el-option>
|
</el-select>
|
</div>
|
<div class="thing">
|
<div class="left">
|
<el-input v-model="search.technology" suffix-icon="el-icon-search" placeholder="请输入搜索内容" size="small" clearable @input="(val)=>$refs.tree.filter(val)"></el-input>
|
<el-tree :data="list" ref="tree" :props="{children: 'children',label: 'name'}" node-key="name" default-expand-all
|
@node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" @node-collapse="nodeClose" :filter-node-method="filterNode"
|
:key="upIndex">
|
<div class="custom-tree-node" slot-scope="{ node, data }">
|
<span><i :class="`node_i ${data.code != '[2]'?'el-icon-folder-opened':'el-icon-tickets'}`"></i>
|
{{data.code}} {{ data.name }}</span>
|
</div>
|
</el-tree>
|
</div>
|
<div class="right">
|
<el-table :data="tableData" border style="width: 100%;overflow-y: auto;min-height: 100%" max-height="100%"
|
@selection-change="handleSelectionChange" default-expand-all>
|
<el-table-column type="selection" width="50">
|
</el-table-column>
|
<el-table-column type="index" label="序号" width="70">
|
</el-table-column>
|
<el-table-column prop="name" label="名称">
|
</el-table-column>
|
<el-table-column prop="unit" label="单位">
|
</el-table-column>
|
<el-table-column prop="required" label="标准值">
|
</el-table-column>
|
<el-table-column prop="internal" label="内控值">
|
</el-table-column>
|
<el-table-column label="操作" width="130">
|
<template slot-scope="scope">
|
<!-- <span class="table_do" @click="upContent(scope.row)">编辑 -->
|
<!-- </span> -->
|
<span class="table_do" @click="deleteRow(scope.$index, scope.row)">删除</span>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
</div>
|
<!-- <el-dialog title="编辑记录内容" :visible.sync="upDia" width="500px">
|
<div class="body">
|
<el-row style="line-height: 46px;">
|
<el-col :span="4" style="font-size: 14px;text-align: right;">名称:</el-col>
|
<el-col :span="16" :offset="1">
|
<el-input v-model="upData.name" size="small" clearable></el-input>
|
</el-col>
|
</el-row>
|
<el-row style="line-height: 46px;">
|
<el-col :span="4" style="font-size: 14px;text-align: right;">单位:</el-col>
|
<el-col :span="16" :offset="1">
|
<el-input v-model="upData.unit" size="small" clearable></el-input>
|
</el-col>
|
</el-row>
|
<el-row style="line-height: 46px;">
|
<el-col :span="4" style="font-size: 14px;text-align: right;">标准值:</el-col>
|
<el-col :span="16" :offset="1">
|
<el-input v-model="upData.required" size="small" clearable></el-input>
|
</el-col>
|
</el-row>
|
<el-row style="line-height: 46px;">
|
<el-col :span="4" style="font-size: 14px;text-align: right;">内控值:</el-col>
|
<el-col :span="16" :offset="1">
|
<el-input v-model="upData.internal" size="small" clearable></el-input>
|
</el-col>
|
</el-row>
|
</div>
|
<span slot="footer" class="dialog-footer">
|
<el-button type="primary" @click="submitUpData">确 定</el-button>
|
<el-button @click="upDia = false">取 消</el-button>
|
</span>
|
</el-dialog> -->
|
<!-- 新增弹窗 -->
|
<el-dialog title="自建新增" :visible.sync="dialogVisible" width="35%">
|
<div>
|
<el-form ref="form" :model="form" label-width="80px">
|
<el-form-item label="类型">
|
<template>
|
<el-select v-model="form.value" placeholder="请选择" @change="edittype" style="width: 100%;">
|
<el-option v-for="(a, ai) in bigType" :key="ai" :value="a"></el-option>
|
</el-select>
|
</template>
|
</el-form-item>
|
<el-form-item label="工序">
|
<template>
|
<el-select v-model="form.procedure"
|
@change="workevent"
|
placeholder="请选择" style="width: 100%;">
|
<el-option
|
v-for="item in process"
|
:key="item.name"
|
:label="item.name"
|
:value="item.name">
|
</el-option>
|
</el-select>
|
</template>
|
</el-form-item>
|
<el-row>
|
<el-col :span="10">
|
<el-form-item label="工艺名称">
|
<template>
|
<el-select v-model="form.name" placeholder="请选择" style="width: 180px;">
|
<el-option
|
v-for="item in craftapi"
|
:key="item.id"
|
:label="item.name"
|
:value="item.id">
|
</el-option>
|
</el-select>
|
</template>
|
</el-form-item>
|
</el-col>
|
<el-col :span="10" :offset="4">
|
<el-form-item label="自检项目">
|
<el-input v-model="form.project" style="width: 100%;"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="10">
|
<el-form-item label="单位">
|
<el-input v-model="form.unit" style="width: 180px;"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="10" :offset="4">
|
<el-form-item label="标准值">
|
<el-input v-model="form.standard" style="width: 100%;"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-form-item label="内控值" >
|
<el-input v-model="form.control" style="width: 180px;"></el-input>
|
</el-form-item>
|
</el-form>
|
</div>
|
<span slot="footer" class="dialog-footer">
|
<el-button type="primary" @click="add">确 定</el-button>
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
</span>
|
</el-dialog>
|
|
<!-- 修改弹窗 -->
|
<!-- <el-dialog title="工艺路线修改" :visible.sync="modifyVisible" width="35%">
|
<div>
|
<el-form ref="form" :model="form" label-width="80px">
|
<el-form-item label="类型">
|
<template>
|
<el-select v-model="value" placeholder="请选择类型" style="width: 480px;">
|
<el-option
|
v-for="item in options"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</template>
|
</el-form-item>
|
<el-form-item label="工序">
|
<template>
|
<el-select v-model="value" placeholder="请选择类型" style="width: 480px;">
|
<el-option
|
v-for="item in options"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</template>
|
</el-form-item>
|
<el-row>
|
<el-col :span="10">
|
<el-form-item label="工艺名称">
|
<template>
|
<el-select v-model="value" placeholder="请选择类型" style="width: 180px;">
|
<el-option
|
v-for="item in options"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value">
|
</el-option>
|
</el-select>
|
</template>
|
</el-form-item>
|
</el-col>
|
<el-col :span="10" :offset="3">
|
<el-form-item label="自建项目">
|
<el-input v-model="form.name" style="width: 180px;"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="10">
|
<el-form-item label="单位">
|
<el-input v-model="form.vvvv" style="width: 180px;"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="10" :offset="3">
|
<el-form-item label="标准值">
|
<el-input v-model="form.aaaa" style="width: 180px;"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-form-item label="内控值" >
|
<el-input v-model="form.aaaa" style="width: 180px;"></el-input>
|
</el-form-item>
|
</el-form>
|
</div>
|
<span slot="footer" class="dialog-footer">
|
<el-button type="primary" @click="modifyVisible = false">确 定</el-button>
|
<el-button @click="modifyVisible = false">取 消</el-button>
|
</span>
|
</el-dialog> -->
|
</div>
|
</template>
|
|
<script>
|
export default {
|
data() {
|
return {
|
search: {
|
type: 0,
|
name: null,
|
technology: null
|
},
|
options:[],
|
value:{},
|
form:{
|
value:'',
|
procedure:'',
|
name:'',
|
project:'',
|
unit:'',
|
standard:'',
|
control:'',
|
},
|
modifyVisible:false,
|
dialogVisible:false,
|
process: [],
|
product: [],
|
list: [],
|
checkTreeNode: {
|
id:'',
|
},
|
bigType: [],
|
tableData: [],
|
upIndex: 0,
|
selects: [],
|
upDia: [],
|
typeselect:0,
|
process:[],
|
craftapi:[],
|
delete:{},
|
upData: {
|
id: 0,
|
name: null,
|
unit: null,
|
stand: null,
|
ask: null
|
}
|
}
|
},
|
mounted() {
|
this.chooseType()
|
|
},
|
methods: {
|
chooseType() {
|
this.$axios.get(this.$api.url.chooseType).then(res => {
|
this.bigType = res.data
|
this.typeselect = res.data[0]
|
console.log(this.typeselect);
|
this.search.type = res.data[0]
|
this.selectAllleft()
|
this.selectAllSelf()
|
})
|
},
|
selectDataList() {
|
this.list.forEach(a => {
|
a.code = '[1]'
|
if (a.children != undefined) {
|
a.children.forEach(b => {
|
b.code = '[2]'
|
if (b.children != undefined) {
|
b.children.forEach(c => {
|
c.code = '[3]'
|
})
|
}
|
})
|
}
|
})
|
this.upIndex++
|
},
|
//删除
|
delSelfcheck() {
|
console.log(this.upData.id);
|
this.$axios.post(this.$api.url.delSelfcheck,{
|
id:this.upData.id
|
}
|
|
)
|
},
|
deleteRow(index, row) {
|
this.tableData.splice(index,1)
|
this.upData.id = row.id
|
this.delSelfcheck()
|
},
|
//批量删除
|
delAll() {
|
this.$axios.post(this.$api.url.delAll,{
|
ids:this.delete
|
})
|
},
|
//编辑
|
writeRecordById() {
|
|
},
|
//新增
|
add() {
|
if (this.form.standard[0] !== "<" && this.form.standard[0] !== "<=" && this.form.standard[0] !== ">"){
|
this.$message({
|
message: '输入的第一个字符必须是 '<' 或 '<='!',
|
type: 'warning'
|
});
|
return;
|
}
|
this.addSelfcheck()
|
this.dialogVisible = false
|
},
|
addSelfcheck() {
|
this.$axios.post(this.$api.url.addSelfcheck,{
|
internal:this.form.control,
|
name:this.form.project,
|
required:this.form.standard,
|
techTemId:this.form.name,
|
unit:this.form.unit,
|
}, {
|
headers: {
|
"Content-Type": "application/json"
|
}
|
}).then(res=>{
|
this.selectAllSelf()
|
this.form = {}
|
})
|
},
|
//工序工艺
|
chooseTechFath() {
|
this.$axios.get(this.$api.url.chooseTechFath,{
|
params:{type:this.typeselect}
|
}).then(res => {
|
this.process = res.data;
|
console.log(this.process);
|
}, {
|
headers: {
|
"Content-Type": "application/json"
|
}
|
})
|
},
|
workevent(val){
|
console.log(val);
|
let idx = this.process.findIndex(el => el.name === val)
|
this.craftapi = this.process[idx].children
|
},
|
TYpe(val) {
|
this.typeselect = val
|
console.log(this.typeselect);
|
this.selectAllleft()
|
},
|
edittype(val) {
|
// this.typeselect = ''
|
this.typeselect = val
|
this.chooseTechFath()
|
},
|
//主体左
|
selectAllleft() {
|
this.$axios.get(this.$api.url.selectAllleft,{
|
params:{type:this.typeselect}
|
}).then(res => {
|
this.list = res.data;
|
console.log(this.list);
|
this.selectDataList()
|
this.$nextTick(() => {
|
this.$refs.tree.setCurrentKey(this.list[0].children[0].name) // 默认选中节点第一个
|
})
|
console.log("===========");
|
console.log(this.list);
|
let one=this.list.filter(item=>{
|
return item.children.length>0
|
})[0]
|
console.log(one);
|
let id =one.children[0].id
|
this.checkTreeNode.id = id
|
console.log(id);
|
this.selectAllSelfStart(id)
|
this.selectDataList();
|
console.log("===========");
|
})
|
},
|
//默认
|
selectAllSelfStart(id) {
|
this.$axios.get(this.$api.url.selectAllSelf,{
|
params:{id:id}
|
}).then(res => {
|
this.tableData = res.data;
|
console.log(this.tableData);
|
})
|
},
|
//右
|
selectAllSelf() {
|
this.$axios.get(this.$api.url.selectAllSelf,{
|
params:{id:this.checkTreeNode.id}
|
}).then(res => {
|
this.tableData = res.data;
|
console.log(this.tableData);
|
})
|
},
|
modify(){
|
this.modifyVisible = true
|
},
|
addend(){
|
this.dialogVisible = true
|
this.chooseTechFath()
|
},
|
filterNode(value, data) {
|
if (!value) return true;
|
return data.name.indexOf(value) !== -1;
|
},
|
remove(node, data) {
|
this.$confirm("是否删除", "警告", {
|
type: "warning"
|
}).then(res => {
|
const parent = node.parent;
|
const children = parent.data.children || parent.data;
|
const index = children.findIndex(d => d.id === data.id);
|
children.splice(index, 1);
|
}).catch(e => {})
|
},
|
selectDataList() {
|
this.list.forEach(a => {
|
a.code = '[1]'
|
if (a.children != undefined) {
|
a.children.forEach(b => {
|
b.code = '[2]'
|
})
|
}
|
})
|
this.upIndex++
|
},
|
handleNodeClick(data) {
|
this.checkTreeNode = data
|
this.selectAllSelf()
|
if(data.code=='[2]'){
|
console.log(data);
|
}
|
},
|
nodeOpen(data, node, el) {
|
$($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened')
|
},
|
nodeClose(data, node, el) {
|
$($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder')
|
},
|
handleSelectionChange(val) {
|
this.selects = val;
|
},
|
dels() {
|
this.selects.forEach(a => {
|
for (var b = 0; b < this.tableData.length; b++) {
|
if (this.tableData[b].id == a.id) {
|
this.tableData.splice(b, 1)
|
b--
|
}
|
}
|
})
|
let cc = this.selects.map(el => {
|
return el.id
|
})
|
this.delete = cc.join(',')
|
console.log(this.delete);
|
this.delAll()
|
this.$message.success('删除完成')
|
},
|
upContent(ob) {
|
this.upData = this.HaveJson(ob)
|
this.upDia = true
|
},
|
submitUpData() {
|
this.tableData.forEach(a => {
|
if (a.id == this.upData.id) {
|
a.name = this.upData.name
|
a.unit = this.upData.unit
|
a.stand = this.upData.stand
|
a.ask = this.upData.ask
|
}
|
})
|
this.$message.success('修改成功')
|
this.upIndex++
|
this.upDia = false
|
}
|
}
|
}
|
</script>
|