|
@@ -69,15 +69,28 @@
|
|
|
<el-timeline-item center placement="top" :type="maintenanceInfo.state === 0 ? 'primary' : 'success'">
|
|
|
<el-card v-if="viewPage">
|
|
|
<h4>维修情况说明</h4>
|
|
|
- <p>维修人员: {{maintenanceInfo.handleUser}}</p>
|
|
|
- <p>维修内容: {{maintenanceInfo.handleContent}}</p>
|
|
|
+ <p>故障确认: {{maintenanceInfo.faultRemark}}</p>
|
|
|
+ <p>维修记录: {{maintenanceInfo.handleContent}}</p>
|
|
|
+ <p>预计费用: {{maintenanceInfo.handleContent}}</p>
|
|
|
+ <p>维修人: {{maintenanceInfo.handleUser}}</p>
|
|
|
+ <p>日期: {{maintenanceInfo.handleTime}}</p>
|
|
|
<p>处理结果: {{maintenanceInfo.handleUser ? (maintenanceInfo.handleResult === 0 ? '可正常运行' : '报废') : ''}}</p>
|
|
|
</el-card>
|
|
|
<el-card v-if="!viewPage">
|
|
|
- <h4>设备维修</h4>
|
|
|
+ <h4>维修情况说明</h4>
|
|
|
<el-form ref="maintenanceInfoForm1" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules1">
|
|
|
+
|
|
|
+ <el-form-item label="故障确认" prop="faultRemark">
|
|
|
+ <el-input :disabled="maintenanceInfo.state !== 0" type="textarea" :rows="2" v-model="maintenanceInfo.faultRemark" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="维修记录" prop="handleContent">
|
|
|
+ <el-input :disabled="maintenanceInfo.state !== 0" type="textarea" :rows="2" v-model="maintenanceInfo.handleContent" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="预计费用" prop="cost">
|
|
|
+ <el-input :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.cost" />
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="维修人员" prop="handleUser">
|
|
|
-<!-- <el-input :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.handleUser" />-->
|
|
|
+ <!-- <el-input :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.handleUser" />-->
|
|
|
<el-select
|
|
|
v-model="maintenanceInfo.handleUser"
|
|
|
placeholder="维修人员"
|
|
@@ -92,8 +105,8 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="维修记录" prop="handleContent">
|
|
|
- <el-input :disabled="maintenanceInfo.state !== 0" type="textarea" :rows="2" v-model="maintenanceInfo.handleContent" />
|
|
|
+ <el-form-item label="日期" prop="handleTime" v-if="maintenanceInfo.state!==0">
|
|
|
+ <el-input :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.handleTime" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="处理结果">
|
|
|
<el-radio-group :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.handleResult" class="ml-4">
|
|
@@ -107,20 +120,29 @@
|
|
|
</el-form>
|
|
|
</el-card>
|
|
|
</el-timeline-item>
|
|
|
-<!-- <el-timeline-item center placement="top" :type="maintenanceInfo.state === 1 ? 'primary' : maintenanceInfo.state === 0 ? 'info' : 'success'">
|
|
|
+ <el-timeline-item center placement="top" :type="maintenanceInfo.state === 1 ? 'primary' : maintenanceInfo.state === 0 ? 'info' : 'success'">
|
|
|
<el-card v-if="viewPage">
|
|
|
- <h4>设备审批</h4>
|
|
|
+ <h4>科研生产部设备管理员计量意见</h4>
|
|
|
<p>审批人员: {{maintenanceInfo.auditUser}}</p>
|
|
|
<p>审批结果: {{maintenanceInfo.auditUser ? (maintenanceInfo.auditResult === 0 ? '通过' : '不通过') : ''}}</p>
|
|
|
</el-card>
|
|
|
<el-card v-if="!viewPage">
|
|
|
- <h4>设备审批</h4>
|
|
|
+ <h4>科研生产部设备管理员意见</h4>
|
|
|
<el-form ref="maintenanceInfoForm2" v-if="maintenanceInfo.state >= 1" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules2">
|
|
|
- <el-form-item label="审批人员" prop="auditUser">
|
|
|
-<!– <el-input :disabled="maintenanceInfo.state !== 1 && readonly" v-model="maintenanceInfo.auditUser" />–>
|
|
|
+ <el-form-item label="计量意见" prop="auditOpinion">
|
|
|
+ <el-input :disabled="maintenanceInfo.state !== 1" type="textarea" :rows="2" v-model="maintenanceInfo.auditOpinion" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="审批结果">
|
|
|
+ <el-radio-group :disabled="maintenanceInfo.state !== 1 && readonly" v-model="maintenanceInfo.auditResult" class="ml-4">
|
|
|
+ <el-radio :value="0">通过</el-radio>
|
|
|
+ <el-radio :value="1">不通过</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="设备管理员" prop="auditUser">
|
|
|
+ <!-- <el-input :disabled="maintenanceInfo.state !== 1 && readonly" v-model="maintenanceInfo.auditUser" />-->
|
|
|
<el-select
|
|
|
v-model="maintenanceInfo.auditUser"
|
|
|
- placeholder="审批人员"
|
|
|
+ placeholder="设备管理员"
|
|
|
:disabled="maintenanceInfo.state !== 1 && readonly"
|
|
|
size="large"
|
|
|
filterable>
|
|
@@ -132,18 +154,138 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item style="margin-left: 45%">
|
|
|
+ <el-button type="primary" v-if="maintenanceInfo.state ===1" v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.repair_audit]" :disabled="maintenanceInfo.state !== 1" @click="maintenanceSubmit2">审批</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-card>
|
|
|
+ </el-timeline-item>
|
|
|
+
|
|
|
+ <el-timeline-item center placement="top" :type="maintenanceInfo.state === 3 ? 'primary' : maintenanceInfo.state < 3 ? 'info' : 'success'">
|
|
|
+ <el-card v-if="viewPage">
|
|
|
+ <h4>科研生产部负责人计量意见</h4>
|
|
|
+ <p>审批人员: {{maintenanceInfo.auditUser}}</p>
|
|
|
+ <p>审批结果: {{maintenanceInfo.auditUser ? (maintenanceInfo.auditResult === 0 ? '通过' : '不通过') : ''}}</p>
|
|
|
+ </el-card>
|
|
|
+ <el-card v-if="!viewPage">
|
|
|
+ <h4>科研生产部负责人意见</h4>
|
|
|
+ <el-form ref="maintenanceInfoForm3" v-if="maintenanceInfo.state >= 3" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules3">
|
|
|
+ <el-form-item label="计量意见" prop="auditOpinion1">
|
|
|
+ <el-input :disabled="maintenanceInfo.state !== 3" type="textarea" :rows="2" v-model="maintenanceInfo.auditOpinion1" />
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="审批结果">
|
|
|
- <el-radio-group :disabled="maintenanceInfo.state !== 1 && readonly" v-model="maintenanceInfo.auditResult" class="ml-4">
|
|
|
+ <el-radio-group :disabled="maintenanceInfo.state !== 3 && readonly" v-model="maintenanceInfo.auditResult1" class="ml-4">
|
|
|
<el-radio :value="0">通过</el-radio>
|
|
|
<el-radio :value="1">不通过</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="负责人" prop="auditUser1">
|
|
|
+ <!-- <el-input :disabled="maintenanceInfo.state !== 1 && readonly" v-model="maintenanceInfo.auditUser" />-->
|
|
|
+ <el-select
|
|
|
+ v-model="maintenanceInfo.auditUser1"
|
|
|
+ placeholder="负责人"
|
|
|
+ :disabled="maintenanceInfo.state !== 3 && readonly"
|
|
|
+ size="large"
|
|
|
+ filterable>
|
|
|
+ <el-option
|
|
|
+ v-for="item in userList"
|
|
|
+ :key="item.userName"
|
|
|
+ :label="item.userName"
|
|
|
+ :value="item.userName"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item style="margin-left: 45%">
|
|
|
- <el-button type="primary" v-if="maintenanceInfo.state ===1" v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.repair_audit]" :disabled="maintenanceInfo.state !== 1" @click="maintenanceSubmit2">审批</el-button>
|
|
|
+ <el-button type="primary" v-if="maintenanceInfo.state ===3" v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.repair_audit1]" :disabled="maintenanceInfo.state !== 3" @click="maintenanceSubmit3">审批</el-button>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</el-card>
|
|
|
- </el-timeline-item>-->
|
|
|
+ </el-timeline-item>
|
|
|
+ <el-timeline-item center placement="top" :type="maintenanceInfo.state === 5 ? 'primary' : maintenanceInfo.state < 5 ? 'info' : 'success'">
|
|
|
+ <el-card v-if="viewPage">
|
|
|
+ <h4>使用人验收意见</h4>
|
|
|
+ <p>审批人员: {{maintenanceInfo.auditUser}}</p>
|
|
|
+ <p>审批结果: {{maintenanceInfo.auditUser ? (maintenanceInfo.auditResult === 0 ? '通过' : '不通过') : ''}}</p>
|
|
|
+ </el-card>
|
|
|
+ <el-card v-if="!viewPage">
|
|
|
+ <h4>使用人验收意见</h4>
|
|
|
+ <el-form ref="maintenanceInfoForm4" v-if="maintenanceInfo.state >= 5" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules3">
|
|
|
+ <el-form-item label="验收意见" prop="auditOpinion2">
|
|
|
+ <el-input :disabled="maintenanceInfo.state !== 5" type="textarea" :rows="2" v-model="maintenanceInfo.auditOpinion2" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="审批结果">
|
|
|
+ <el-radio-group :disabled="maintenanceInfo.state !== 5 && readonly" v-model="maintenanceInfo.auditResult2" class="ml-4">
|
|
|
+ <el-radio :value="0">通过</el-radio>
|
|
|
+ <el-radio :value="1">不通过</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="使用人" prop="auditUser1">
|
|
|
+ <!-- <el-input :disabled="maintenanceInfo.state !== 1 && readonly" v-model="maintenanceInfo.auditUser" />-->
|
|
|
+ <el-select
|
|
|
+ v-model="maintenanceInfo.auditUser2"
|
|
|
+ placeholder="使用人"
|
|
|
+ :disabled="maintenanceInfo.state !== 5 && readonly"
|
|
|
+ size="large"
|
|
|
+ filterable>
|
|
|
+ <el-option
|
|
|
+ v-for="item in userList"
|
|
|
+ :key="item.userName"
|
|
|
+ :label="item.userName"
|
|
|
+ :value="item.userName"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item style="margin-left: 45%">
|
|
|
+ <el-button type="primary" v-if="maintenanceInfo.state ===5" v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.repair_audit2]" :disabled="maintenanceInfo.state !== 5" @click="maintenanceSubmit4">审批</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-card>
|
|
|
+ </el-timeline-item>
|
|
|
+ <el-timeline-item center placement="top" :type="maintenanceInfo.state === 7 ? 'primary' : maintenanceInfo.state < 7 ? 'info' : 'success'">
|
|
|
+ <el-card v-if="viewPage">
|
|
|
+ <h4>使用部门负责人验收意见</h4>
|
|
|
+ <p>审批人员: {{maintenanceInfo.auditUser}}</p>
|
|
|
+ <p>审批结果: {{maintenanceInfo.auditUser ? (maintenanceInfo.auditResult === 0 ? '通过' : '不通过') : ''}}</p>
|
|
|
+ </el-card>
|
|
|
+ <el-card v-if="!viewPage">
|
|
|
+ <h4>使用部门负责人验收意见</h4>
|
|
|
+ <el-form ref="maintenanceInfoForm5" v-if="maintenanceInfo.state >= 7" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules3">
|
|
|
+ <el-form-item label="计量意见" prop="auditOpinion3">
|
|
|
+ <el-input :disabled="maintenanceInfo.state !== 7" type="textarea" :rows="2" v-model="maintenanceInfo.auditOpinion3" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="审批结果">
|
|
|
+ <el-radio-group :disabled="maintenanceInfo.state !== 7 && readonly" v-model="maintenanceInfo.auditResult3" class="ml-4">
|
|
|
+ <el-radio :value="0">通过</el-radio>
|
|
|
+ <el-radio :value="1">不通过</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="部门负责人" prop="auditUser1">
|
|
|
+ <!-- <el-input :disabled="maintenanceInfo.state !== 1 && readonly" v-model="maintenanceInfo.auditUser" />-->
|
|
|
+ <el-select
|
|
|
+ v-model="maintenanceInfo.auditUser3"
|
|
|
+ placeholder="部门负责人"
|
|
|
+ :disabled="maintenanceInfo.state !== 7 && readonly"
|
|
|
+ size="large"
|
|
|
+ filterable>
|
|
|
+ <el-option
|
|
|
+ v-for="item in userList"
|
|
|
+ :key="item.userName"
|
|
|
+ :label="item.userName"
|
|
|
+ :value="item.userName"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item style="margin-left: 45%">
|
|
|
+ <el-button type="primary" v-if="maintenanceInfo.state ===7" v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.repair_audit3]" :disabled="maintenanceInfo.state !== 7" @click="maintenanceSubmit5">审批</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ </el-card>
|
|
|
+ </el-timeline-item>
|
|
|
</el-timeline>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
@@ -210,6 +352,9 @@ const queryUserList = ()=>{
|
|
|
}
|
|
|
const maintenanceInfoForm1 = ref('maintenanceInfoForm1')
|
|
|
const maintenanceInfoForm2 = ref('maintenanceInfoForm2')
|
|
|
+const maintenanceInfoForm3 = ref('maintenanceInfoForm3')
|
|
|
+const maintenanceInfoForm4 = ref('maintenanceInfoForm4')
|
|
|
+const maintenanceInfoForm5 = ref('maintenanceInfoForm5')
|
|
|
const maintenanceSubmit1 =()=>{
|
|
|
//alert(JSON.stringify(maintenanceInfo.value))
|
|
|
maintenanceInfoForm1.value.validate((isValid, invalidFields) => {
|
|
@@ -229,6 +374,83 @@ const maintenanceSubmit2 =()=>{
|
|
|
//alert(JSON.stringify(maintenanceInfo.value))
|
|
|
maintenanceInfoForm2.value.validate((isValid, invalidFields) => {
|
|
|
if (isValid) {
|
|
|
+ if(maintenanceInfo.value.auditResult=='0'){
|
|
|
+ maintenanceInfo.value.state = 3;
|
|
|
+ }else{
|
|
|
+ maintenanceInfo.value.state = 2;
|
|
|
+ }
|
|
|
+ audit(maintenanceInfo.value).then((data)=>{
|
|
|
+ ElMessage({
|
|
|
+ message: data.msg,
|
|
|
+ type: "success",
|
|
|
+ });
|
|
|
+ dialog1.visible = false
|
|
|
+ dataList()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+const maintenanceSubmit3 =()=>{
|
|
|
+ //alert(JSON.stringify(maintenanceInfo.value))
|
|
|
+ maintenanceInfoForm3.value.validate((isValid, invalidFields) => {
|
|
|
+ if (isValid) {
|
|
|
+ if(maintenanceInfo.value.auditResult1=='0'){
|
|
|
+ maintenanceInfo.value.state = 5;
|
|
|
+ }else{
|
|
|
+ maintenanceInfo.value.state = 4;
|
|
|
+ }
|
|
|
+ maintenanceInfo.value.auditResult = maintenanceInfo.value.auditResult1;
|
|
|
+ maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion1;
|
|
|
+ maintenanceInfo.value.auditUser = maintenanceInfo.value.auditUser1;
|
|
|
+ audit(maintenanceInfo.value).then((data)=>{
|
|
|
+ ElMessage({
|
|
|
+ message: data.msg,
|
|
|
+ type: "success",
|
|
|
+ });
|
|
|
+ dialog1.visible = false
|
|
|
+ dataList()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+const maintenanceSubmit4 =()=>{
|
|
|
+ //alert(JSON.stringify(maintenanceInfo.value))
|
|
|
+ maintenanceInfoForm4.value.validate((isValid, invalidFields) => {
|
|
|
+ if (isValid) {
|
|
|
+ if(maintenanceInfo.value.auditResult2=='0'){
|
|
|
+ maintenanceInfo.value.state = 7;
|
|
|
+ }else{
|
|
|
+ maintenanceInfo.value.state = 6;
|
|
|
+ }
|
|
|
+ maintenanceInfo.value.auditResult = maintenanceInfo.value.auditResult2;
|
|
|
+ maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion2;
|
|
|
+ maintenanceInfo.value.auditUser = maintenanceInfo.value.auditUser2;
|
|
|
+ audit(maintenanceInfo.value).then((data)=>{
|
|
|
+ ElMessage({
|
|
|
+ message: data.msg,
|
|
|
+ type: "success",
|
|
|
+ });
|
|
|
+ dialog1.visible = false
|
|
|
+ dataList()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+const maintenanceSubmit5 =()=>{
|
|
|
+ //alert(JSON.stringify(maintenanceInfo.value))
|
|
|
+ maintenanceInfoForm5.value.validate((isValid, invalidFields) => {
|
|
|
+ if (isValid) {
|
|
|
+ if(maintenanceInfo.value.auditResult3=='0'){
|
|
|
+ maintenanceInfo.value.state = 9;
|
|
|
+ }else{
|
|
|
+ maintenanceInfo.value.state = 8;
|
|
|
+ }
|
|
|
+ maintenanceInfo.value.auditResult = maintenanceInfo.value.auditResult3;
|
|
|
+ maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion3;
|
|
|
+ maintenanceInfo.value.auditUser = maintenanceInfo.value.auditUser3;
|
|
|
audit(maintenanceInfo.value).then((data)=>{
|
|
|
ElMessage({
|
|
|
message: data.msg,
|
|
@@ -244,13 +466,27 @@ const rules1 = reactive({
|
|
|
handleUser: [
|
|
|
{ required: true, message: '维修人员不能为空', trigger: 'blur' }
|
|
|
],
|
|
|
+ faultRemark: [
|
|
|
+ { required: true, message: '故障确认不能为空', trigger: 'blur' }
|
|
|
+ ],
|
|
|
handleContent: [
|
|
|
- { required: true, message: '维修内容不能为空', trigger: 'blur' }
|
|
|
+ { required: true, message: '维修记录不能为空', trigger: 'blur' }
|
|
|
]
|
|
|
})
|
|
|
const rules2 = reactive({
|
|
|
auditUser: [
|
|
|
- { required: true, message: '审批人员不能为空', trigger: 'blur' }
|
|
|
+ { required: true, message: '设备管理员不能为空', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ auditOpinion: [
|
|
|
+ { required: true, message: '计量意见不能为空', trigger: 'blur' }
|
|
|
+ ]
|
|
|
+})
|
|
|
+const rules3 = reactive({
|
|
|
+ auditUser1: [
|
|
|
+ { required: true, message: '负责人不能为空', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ auditOpinion1: [
|
|
|
+ { required: true, message: '计量意见不能为空', trigger: 'blur' }
|
|
|
]
|
|
|
})
|
|
|
// 设置表格列或者其他自定义的option
|
|
@@ -346,7 +582,9 @@ option.value = Object.assign(option.value, {
|
|
|
prop: "state",
|
|
|
type: "select",
|
|
|
display: false,
|
|
|
- dicData:[{label: '待维修',value: 0},{label: '待审批 ',value: 1},{label: '已完成',value: 2}],
|
|
|
+ overHidden: true,
|
|
|
+ dicData:[{label: '待维修',value: 0},{label: '待科研生产部设备管理员审批 ',value: 1},{label: '审核不通过',value: 2},{label: '待科研生产部负责人审批',value: 3},
|
|
|
+ {label: '审核不通过',value: 4},{label: '待使用人审核',value: 5},{label: '审核不通过',value: 6},{label: '待使用部门负责人审核',value: 7},{label: '审核不通过',value: 8},{label: '已完成',value: 9}],
|
|
|
},
|
|
|
|
|
|
],
|