<style scoped>
|
.title {
|
height: 60px;
|
line-height: 60px;
|
}
|
|
.search {
|
background-color: #fff;
|
height: 80px;
|
display: flex;
|
align-items: center;
|
}
|
|
.search_thing {
|
width: 350px;
|
display: flex;
|
align-items: center;
|
}
|
|
.search_label {
|
width: 110px;
|
font-size: 14px;
|
text-align: right;
|
}
|
|
.search_input {
|
width: calc(100% - 110px);
|
}
|
|
.table {
|
margin-top: 10px;
|
background-color: #fff;
|
width: calc(100% - 40px);
|
height: calc(100% - 60px - 80px - 10px - 40px);
|
padding: 20px;
|
}
|
|
.tab {
|
list-style-type: none;
|
display: flex;
|
margin-bottom: 12px;
|
}
|
|
.tab li {
|
line-height: 24px;
|
padding: 6px 14px;
|
font-size: 14px;
|
color: #333333;
|
border: 1px solid #EEEEEE;
|
cursor: pointer;
|
}
|
|
.tab li:nth-child(1) {
|
border-radius: 8px 0 0 8px;
|
}
|
|
.tab li:nth-child(4) {
|
border-radius: 0 8px 8px 0;
|
}
|
|
.tab li.active {
|
border-color: #3A7BFA;
|
color: #3A7BFA;
|
}
|
|
.el-form-item {
|
margin-bottom: 16px;
|
}
|
</style>
|
|
<template>
|
<div class="role_manage">
|
<div>
|
<el-row class="title">
|
<el-col :span="12" style="padding-left: 20px;">检验下单</el-col>
|
<el-col :span="12" style="text-align: right;">
|
<el-button size="medium" type="primary" @click="playOrder">下单</el-button>
|
</el-col>
|
</el-row>
|
</div>
|
<div class="search">
|
<div class="search_thing">
|
<div class="search_label">委托编号:</div>
|
<div class="search_input"><el-input size="small" placeholder="请输入" clearable
|
v-model="componentData.entity.deviceName" @keyup.enter.native="refreshTable()"></el-input></div>
|
</div>
|
<div class="search_thing">
|
<div class="search_label">样品名称:</div>
|
<div class="search_input"><el-input size="small" placeholder="请输入" clearable
|
v-model="componentData.entity.specificationModel" @keyup.enter.native="refreshTable()"></el-input></div>
|
</div>
|
<div class="search_thing" style="padding-left: 30px;">
|
<el-button size="small" @click="refresh()">重 置</el-button>
|
<el-button size="small" type="primary" @click="refreshTable()">查 询</el-button>
|
</div>
|
</div>
|
<div class="table">
|
<ul class="tab">
|
<li v-for="(m,i) in tabList" :key="i" :class="{active:i==tabIndex}" @click="handleTab(m,i)">{{m.label}}</li>
|
</ul>
|
<!-- 语法 子组件通过 this.$emit +传入方法名 调用父组件方法 例如 this.$emit(selectAllByOne) 就需在父组件声明并传入 @selectAllByOne="selectAllByOne"-->
|
<ValueTable ref="ValueTable" :url="$api.deviceScope.selectDeviceParameter" :componentData="componentData"
|
:key="upIndex" style="height: calc(100% - 44px)" @selectAllByOne="selectAllByOne"
|
@handleDataLook="handleDataLook" @download="download" @handleVerify="handleVerify" @handlEquash="handlEquash"
|
@handleIssued="handleIssued" />
|
</div>
|
<!-- 审核 -->
|
<el-dialog title="下单审核" :visible.sync="verifyDialogVisible" width="30%" :before-close="handleClose">
|
<p style="font-size:16px;color:#333333" v-if="!isPass">委托编号<span
|
style="color:#34BD66">ZTMS2023071001</span>的信息是否通过</p>
|
<el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else>
|
<el-form-item label="请输入样品库位号:">
|
<el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
|
</el-form-item>
|
</el-form>
|
<span slot="footer" class="dialog-footer">
|
<el-row v-if="!isPass">
|
<el-button @click="handleClose">退 回</el-button>
|
<el-button type="primary" @click="submitForm" :loading="upLoad">通 过</el-button>
|
</el-row>
|
<el-row v-else>
|
<el-button @click="handleClose">返 回</el-button>
|
<el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button>
|
</el-row>
|
</span>
|
</el-dialog>
|
<!-- 撤销 -->
|
<el-dialog title="下单撤销" :visible.sync="quashDialogVisible" width="30%" :before-close="handleClose">
|
<p style="font-size:16px;color:#333333" v-if="!isQuash">委托编号<span
|
style="color:#34BD66">ZTMS2023071001</span>的信息是否撤销</p>
|
<el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else>
|
<el-form-item label="请输入撤销原因:">
|
<el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
|
</el-form-item>
|
</el-form>
|
<span slot="footer" class="dialog-footer">
|
<el-row v-if="!isQuash">
|
<el-button @click="handleClose">取 消</el-button>
|
<el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button>
|
</el-row>
|
<el-row v-else>
|
<el-button @click="handleClose">返 回</el-button>
|
<el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button>
|
</el-row>
|
</span>
|
</el-dialog>
|
<!-- 下发 -->
|
<el-dialog title="检验下发" :visible.sync="issuedDialogVisible" width="30%" :before-close="handleClose">
|
<el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm">
|
<el-form-item label="约定时间:">
|
<el-date-picker style="width:100%" format="yyyy-MM-dd" value-format="yyyy-MM-dd" v-model="formData.downTime"
|
type="date" size="small" placeholder="选择时间">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item label="指派人员:">
|
<el-select v-model="formData.equipmentManager" placeholder="请选择" size="small" style="width:100%">
|
<el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
</el-form>
|
<span slot="footer" class="dialog-footer">
|
<el-row>
|
<el-button @click="handleClose">取 消</el-button>
|
<el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button>
|
</el-row>
|
</span>
|
</el-dialog>
|
<el-dialog title="数据查看" :visible.sync="dataDialogVisible" width="70%" :before-close="handleClose">
|
<div style="height: 70vh;overflow-y: auto;">
|
<ValueTable ref="ValueTableDataLook" :url="$api.deviceScope.selectDeviceParameter"
|
:componentData="componentDataDataLook" :key="upIndex" />
|
</div>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import ValueTable from '../tool/value-table.vue'
|
export default {
|
components: {
|
ValueTable
|
},
|
data() {
|
return {
|
//是否审核通过 true是 false不是
|
isPass: false,
|
//是否审核撤销 true是 false不是
|
isQuash: false,
|
verifyDialogVisible: false,
|
quashDialogVisible: false,
|
issuedDialogVisible: false,
|
dataDialogVisible: false,
|
formData: {},
|
// 人员列表
|
personList: [],
|
labelPosition: 'right',
|
componentData: {
|
entity: {
|
deviceStatus: null,
|
deviceName: null,
|
specificationModel: null,
|
largeCategory: null,
|
orderBy: {
|
field: 'id',
|
order: 'asc'
|
}
|
},
|
isIndex: true,
|
showSelect: false,
|
select: false,
|
do: [{
|
id: 'dataLook',
|
font: '数据查看',
|
type: 'text',
|
method: 'handleDataLook'
|
}, {
|
id: 'download',
|
font: '报告下载',
|
type: 'text',
|
method: 'download'
|
}, {
|
id: 'verify',
|
font: '审核',
|
type: 'text',
|
method: 'handleVerify'
|
}, {
|
id: 'quash',
|
font: '撤销',
|
type: 'text',
|
method: 'handlEquash'
|
}, {
|
id: 'issued',
|
font: '下发',
|
type: 'text',
|
method: 'handleIssued'
|
}],
|
tagField: {
|
deviceStatus: {
|
select: [{
|
value: 0,
|
type: 'success',
|
label: '正常'
|
}, {
|
value: 1,
|
type: 'warning',
|
label: '报废'
|
}, {
|
value: 2,
|
type: 'danger',
|
label: '保修'
|
}]
|
}
|
},
|
linkEvent:{
|
deviceName:{
|
id: 'details',
|
method:'selectAllByOne',
|
}
|
},
|
selectField: {},
|
requiredAdd: ['largeCategory', 'subclass', 'deviceName', 'internalCode', 'specificationModel', 'manufacturer'],
|
requiredUp: ['largeCategory', 'subclass', 'deviceName', 'internalCode', 'specificationModel', 'manufacturer']
|
},
|
componentDataDataLook: {
|
entity: {
|
orderBy: {
|
field: 'id',
|
order: 'asc'
|
}
|
},
|
isIndex: false,
|
showSelect: false,
|
select: false,
|
do: [],
|
tagField: {
|
deviceStatus: {
|
select: [{
|
value: 0,
|
type: 'success',
|
label: '正常'
|
}, {
|
value: 1,
|
type: 'warning',
|
label: '报废'
|
}, {
|
value: 2,
|
type: 'danger',
|
label: '保修'
|
}]
|
}
|
},
|
selectField: {},
|
requiredAdd: [],
|
requiredUp: []
|
},
|
entityCopy: {},
|
upIndex: 0,
|
addPower: true,
|
upLoad: false,
|
tabList: [{
|
label: '检验处理',
|
value: 0
|
},
|
{
|
label: '待审核',
|
value: 1
|
},
|
{
|
label: '退回',
|
value: 2
|
},
|
{
|
label: '撤销',
|
value: 3
|
},
|
],
|
tabIndex: 0,
|
}
|
},
|
mounted() {
|
this.entityCopy = this.HaveJson(this.componentData.entity)
|
this.getPower()
|
},
|
methods: {
|
refreshTable() {
|
this.$refs['ValueTable'].selectList()
|
},
|
refresh() {
|
this.componentData.entity = this.HaveJson(this.entityCopy)
|
this.upIndex++
|
},
|
// 权限分配
|
getPower(radio) {
|
let power = JSON.parse(sessionStorage.getItem('power'))
|
let up = false
|
let del = false
|
let add = false
|
for (var i = 0; i < power.length; i++) {
|
if (power[i].menuMethod == 'upDeviceParameter') {
|
up = true
|
}
|
if (power[i].menuMethod == 'delDeviceParameter') {
|
del = true
|
}
|
if (power[i].menuMethod == 'addDeviceParameter') {
|
add = true
|
}
|
}
|
if (!del) {
|
this.componentData.do.splice(1, 1)
|
}
|
if (!up) {
|
this.componentData.do.splice(0, 1)
|
}
|
this.addPower = add
|
},
|
handleClose() {
|
this.verifyDialogVisible = false;
|
this.quashDialogVisible = false;
|
this.issuedDialogVisible = false;
|
this.dataDialogVisible = false;
|
this.upLoad = false;
|
},
|
// 详情
|
selectAllByOne(row) {
|
//打开弹框
|
this.dialogVisible = true;
|
//row = 点击对应行值
|
//复制给formData
|
this.formData = this.HaveJson(row);
|
},
|
// 数据查看
|
handleDataLook(row) {
|
this.dataDialogVisible = true;
|
},
|
// 下载报告
|
download(row) {
|
|
},
|
// 审核
|
handleVerify(row) {
|
this.verifyDialogVisible = true;
|
},
|
// 撤销
|
handlEquash(row) {
|
this.quashDialogVisible = true;
|
},
|
// 下发
|
handleIssued(row) {
|
this.issuedDialogVisible = true;
|
},
|
submitForm() {
|
this.upLoad = true;
|
let authorizedPerson = this.formData.authorizedPerson.length > 0 ? this.formData.authorizedPerson.join(',') : ''
|
delete this.formData.createTime
|
delete this.formData.updateTime
|
delete this.formData.createUser
|
delete this.formData.updateUser
|
this.formData.authorizedPerson = authorizedPerson
|
this.$axios.post(this.$api.deviceScope.upDeviceParameter, this.formData, {
|
headers: {
|
'Content-Type': 'application/json'
|
}
|
}).then(res => {
|
if (res.code === 201) {
|
this.upLoad = false
|
return
|
}
|
this.$message.success('修改成功')
|
this.upLoad = false
|
this.refreshTable()
|
this.dialogVisible = false
|
}).catch(e => {
|
this.$message.error('修改失败')
|
this.dialogVisible = false
|
this.upLoad = false
|
})
|
},
|
// 下单
|
playOrder() {},
|
handleTab(m, i) {
|
this.tabIndex = i;
|
}
|
}
|
}
|
</script>
|