|
@@ -6,7 +6,7 @@
|
|
|
<div class="view-dataSpecies-right">
|
|
|
<div class="view-dataType-title">
|
|
|
<div class="view-dataType-title-btn">
|
|
|
- <el-button type="success" @click="openDialog()" :disabled="currentNode && currentNode.type == 0">新增</el-button>
|
|
|
+ <el-button type="success" @click="openDialog()" :disabled="!(currentNode.type == 1 && currentNode.children.length == 0)">新增</el-button>
|
|
|
<el-button type="warning" @click="remove(tableCheckItems)" :disabled="tableCheckItems.length == 0">删除</el-button>
|
|
|
<el-button type="primary">导入模板</el-button>
|
|
|
<el-button type="primary">导出模板</el-button>
|
|
@@ -23,29 +23,44 @@
|
|
|
<!-- 添加或修改维修任务对话框 -->
|
|
|
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="600px" :before-close="handleClose">
|
|
|
<el-form ref="form" :model="form" label-width="80px">
|
|
|
- <el-form-item label="架次号" prop="sortieNo">
|
|
|
- <el-input v-model="form.sortieNo" placeholder="请输入架次号" />
|
|
|
+ <el-form-item label="机型" prop="aircraftType">
|
|
|
+ <el-select v-model="form.aircraftType" placeholder="请选择机型">
|
|
|
+ <el-option v-for="item in aircaftModelAll" :key="item.aircaftModelId" :label="item.aircaftModelName" :value="item.aircaftModelId"> </el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="机号" prop="aircraftId">
|
|
|
- <el-input v-model="form.aircraftId" placeholder="请输入机号" />
|
|
|
+ <el-form-item label="机号" prop="aircraftCode">
|
|
|
+ <el-select v-model="form.aircraftCode" placeholder="请选择编目">
|
|
|
+ <el-option v-for="item in aircaftCatalogAll" :key="item.aircaftCatalogId" :label="item.aircaftCatalogCode" :value="item.aircaftCatalogId"> </el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="所属系统" prop="systemName">
|
|
|
- <el-input v-model="form.systemName" placeholder="请输入所属系统" />
|
|
|
+ <el-form-item label="数据来源" prop="dataType">
|
|
|
+ <el-select v-model="form.dataType" placeholder="请输入数据来源">
|
|
|
+ <el-option v-for="item in dataTypeList" :key="item.id" :label="item.label" :value="item.label"> </el-option>
|
|
|
+ </el-select>
|
|
|
+ <!-- <el-input v-model="form.dataType" placeholder="请输入所属系统" /> -->
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="单位" prop="unitName">
|
|
|
- <el-input v-model="form.unitName" placeholder="请输入单位" />
|
|
|
+ <el-form-item label="故障代码" prop="faultCode">
|
|
|
+ <el-input v-model="form.faultCode" placeholder="请输入故障代码" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="处理人" prop="operator">
|
|
|
- <el-input v-model="form.operator" placeholder="请输入处理人" />
|
|
|
+ <el-form-item label="故障描述" prop="faultDescription">
|
|
|
+ <el-input v-model="form.faultDescription" placeholder="请输入故障描述" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="故障部件" prop="faultPart">
|
|
|
- <el-input v-model="form.faultPart" placeholder="请输入故障部件" />
|
|
|
+ <el-form-item label="故障位置" prop="location">
|
|
|
+ <el-input v-model="form.location" placeholder="请输入故障位置" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="维修建议" prop="proposal">
|
|
|
- <el-input v-model="form.proposal" placeholder="请输入维修建议" />
|
|
|
+ <el-form-item label="故障等级" prop="level">
|
|
|
+ <el-select v-model="form.level" placeholder="请输入故障等级">
|
|
|
+ <el-option v-for="item in levelList" :key="item.id" :label="item.label" :value="item.label"> </el-option>
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="维修时间" prop="handlerDate">
|
|
|
- <el-date-picker clearable v-model="form.handlerDate" type="date" value-format="YYYY-MM-DD" placeholder="请选择维修时间"> </el-date-picker>
|
|
|
+ <!-- <el-form-item label="故障发生时间" prop="flightDate">
|
|
|
+ <el-date-picker v-model="form.flightDate" type="date" value-format="yyyy-MM-dd" placement="bottom-start" placeholder="请选择故障发生时间"> </el-date-picker>
|
|
|
+ </el-form-item> -->
|
|
|
+ <el-form-item label="故障现象" prop="symptoms">
|
|
|
+ <el-input v-model="form.symptoms" placeholder="请输入故障现象" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="故障原因" prop="faultCause">
|
|
|
+ <el-input type="textarea" :rows="2" v-model="form.faultCause" placeholder="请输入故障原因" />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
|
|
@@ -54,12 +69,31 @@
|
|
|
<el-button type="primary" @click="submit">确 定</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
+ <el-dialog title="任务分配" :visible.sync="detailVisible" width="1000px" :show-close="false">
|
|
|
+ <el-descriptions size="medium" border>
|
|
|
+ <el-descriptions-item label="机型">{{ detailAircraftType }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="机号">{{ detailAircraftCode }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="数据来源">{{ form.dataType }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="故障代码">{{ form.faultCode }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="故障描述">{{ form.faultDescription }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="故障位置">{{ form.location }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item :span="1" label="故障等级">{{ form.level }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item :span="2" label="故障现象">{{ form.symptoms }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item :span="3" label="故障原因">{{ form.faultCause }}</el-descriptions-item>
|
|
|
+ </el-descriptions>
|
|
|
+
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="detailVisible = false">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { getMaintenanceask, getAircaftTypeAndModelTree, addMaintenanceask, updateMaintenanceask, removeMaintenanceask } from '@/api/als/maintenanceask'
|
|
|
+import { getMaintenanceask, addMaintenanceask, updateMaintenanceask, removeMaintenanceask } from '@/api/als/maintenanceask'
|
|
|
+import { getAircaftTypeAndModelTree } from '@/api/als/sideTree'
|
|
|
+import { getAircaftModelAll, getAircaftCatalogAll } from '@/api/als/aircraft'
|
|
|
import { deepClone, debounce } from '@/utils/index'
|
|
|
export default {
|
|
|
name: 'Maintenanceask',
|
|
@@ -69,10 +103,11 @@ export default {
|
|
|
return {
|
|
|
dialogTitle: '新增',
|
|
|
dialogVisible: false,
|
|
|
+ detailVisible: false,
|
|
|
keyWord: '',
|
|
|
aircaftModelIdList: [],
|
|
|
- currentNodeKey: null,
|
|
|
- currentNode: null,
|
|
|
+ currentNodeKey: '',
|
|
|
+ currentNode: {},
|
|
|
menuTreeData: [],
|
|
|
treeObj: {
|
|
|
title: '所属机种',
|
|
@@ -91,40 +126,51 @@ export default {
|
|
|
columns: [
|
|
|
{ prop: 'id', label: '编号' },
|
|
|
{
|
|
|
- prop: 'sortieNo',
|
|
|
- label: '架次号'
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'aircraftId',
|
|
|
- label: '机号'
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'systemName',
|
|
|
- label: '所属系统'
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'unitName',
|
|
|
- label: '单位'
|
|
|
+ prop: 'aircraftType',
|
|
|
+ label: '机型',
|
|
|
+ render: (h, params) => {
|
|
|
+ const matchedItem = this.aircaftModelAll.find((item) => params.row.aircraftType === item.aircaftModelId)
|
|
|
+ if (matchedItem) {
|
|
|
+ return h('span', matchedItem.aircaftModelName)
|
|
|
+ } else {
|
|
|
+ return h('span', {}, '')
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
- prop: 'operator',
|
|
|
- label: '处理人'
|
|
|
+ prop: 'aircraftCode',
|
|
|
+ label: '机号',
|
|
|
+ render: (h, params) => {
|
|
|
+ const matchedItem = this.aircaftCatalogAll.find((item) => params.row.aircraftCode.trim() === item.aircaftCatalogId.trim())
|
|
|
+ if (matchedItem) {
|
|
|
+ return h('span', matchedItem.aircaftCatalogCode)
|
|
|
+ } else {
|
|
|
+ return h('span', {}, '')
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
- prop: 'faultPart',
|
|
|
- label: '故障部件'
|
|
|
+ prop: 'faultDescription',
|
|
|
+ label: '故障描述'
|
|
|
},
|
|
|
{
|
|
|
- prop: 'proposal',
|
|
|
- label: '维修建议'
|
|
|
+ prop: 'dataType',
|
|
|
+ label: '数据来源'
|
|
|
},
|
|
|
{
|
|
|
- prop: 'handlerDate',
|
|
|
- label: '维修时间'
|
|
|
+ prop: 'createTime',
|
|
|
+ label: '创建时间'
|
|
|
},
|
|
|
{
|
|
|
prop: 'status',
|
|
|
- label: '状态'
|
|
|
+ label: '状态',
|
|
|
+ render: (h, params) => {
|
|
|
+ if (params.row.status == 0) {
|
|
|
+ return h('span', { class: 'warning-state' }, '未分配')
|
|
|
+ } else {
|
|
|
+ return h('span', { class: 'success-state' }, '已分配')
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
{
|
|
|
button: true,
|
|
@@ -137,7 +183,16 @@ export default {
|
|
|
round: false,
|
|
|
plain: false,
|
|
|
onClick: (row, index, scope) => {
|
|
|
- _this.handUpdate(row)
|
|
|
+ this.handUpdate(row)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '查看',
|
|
|
+ type: 'text',
|
|
|
+ round: false,
|
|
|
+ plain: false,
|
|
|
+ onClick: (row, index, scope) => {
|
|
|
+ this.checkDetails(row)
|
|
|
}
|
|
|
},
|
|
|
{
|
|
@@ -146,7 +201,7 @@ export default {
|
|
|
round: false,
|
|
|
plain: false,
|
|
|
onClick: (row, index, scope) => {
|
|
|
- _this.remove([row])
|
|
|
+ this.remove([row])
|
|
|
}
|
|
|
}
|
|
|
]
|
|
@@ -188,7 +243,21 @@ export default {
|
|
|
updateBy: '',
|
|
|
updateTime: ''
|
|
|
},
|
|
|
- debounceFn: debounce(this.fetch, 500)
|
|
|
+ debounceFn: debounce(this.fetch, 500),
|
|
|
+ aircaftModelAll: [],
|
|
|
+ aircaftCatalogAll: [],
|
|
|
+ dataTypeList: [
|
|
|
+ { id: 1, label: '维修决策' },
|
|
|
+ { id: 2, label: '定检任务' },
|
|
|
+ { id: 3, label: '需要确认' }
|
|
|
+ ],
|
|
|
+ levelList: [
|
|
|
+ { id: 1, label: '一般故障' },
|
|
|
+ { id: 2, label: '较大故障' },
|
|
|
+ { id: 3, label: '重大故障' }
|
|
|
+ ],
|
|
|
+ detailAircraftType: '',
|
|
|
+ detailAircraftCode: ''
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
@@ -204,18 +273,27 @@ export default {
|
|
|
async getAircaftTypeAndModelTreeAPI(params) {
|
|
|
const { data } = await getAircaftTypeAndModelTree(params)
|
|
|
this.menuTreeData = data
|
|
|
+ const getAircaftModelAllParams = {
|
|
|
+ aircaftTypeCode: '',
|
|
|
+ aircaftTypeId: '',
|
|
|
+ queryParam: ''
|
|
|
+ }
|
|
|
+ const { data: data1 } = await getAircaftModelAll(getAircaftModelAllParams)
|
|
|
+ this.aircaftModelAll = data1
|
|
|
if (data.length) {
|
|
|
- this.currentNodeKey = data[0].value
|
|
|
+ this.currentNodeKey = data[0].id
|
|
|
this.currentNode = data[0]
|
|
|
- this.aircaftModelIdList = this.getTreeLeafData(data[0]?.children).map((e) => e.id)
|
|
|
- this.getMaintenanceaskAPI({ aircaftModelIdList: this.aircaftModelIdList })
|
|
|
+ this.aircaftModelIdList = this.getTreeLeafData(data[0]?.children)
|
|
|
+ .map((e) => e.id)
|
|
|
+ .toString()
|
|
|
+ this.getMaintenanceaskAPI({ aircraftType: this.aircaftModelIdList })
|
|
|
}
|
|
|
},
|
|
|
|
|
|
async removeMaintenanceaskAPI(params) {
|
|
|
try {
|
|
|
- const { success } = await removeMaintenanceask(params)
|
|
|
- if (success) {
|
|
|
+ const { code } = await removeMaintenanceask(params)
|
|
|
+ if (code == 200) {
|
|
|
this.$message({
|
|
|
type: 'success',
|
|
|
message: '操作成功!'
|
|
@@ -248,59 +326,67 @@ export default {
|
|
|
const { pageSize, pageIndex } = this.tableRequset
|
|
|
const {
|
|
|
data: { list, totalCount }
|
|
|
- } = await getMaintenanceask({ pageSize, pageIndex, keyWord, ...params })
|
|
|
+ } = await getMaintenanceask({ pageSize, pageIndex, ...params })
|
|
|
this.tableData = list
|
|
|
this.tableRequset.total = totalCount
|
|
|
},
|
|
|
|
|
|
fetch() {
|
|
|
- this.getMaintenanceaskAPI({ aircaftModelIdList: this.aircaftModelIdList })
|
|
|
+ this.getMaintenanceaskAPI({ aircraftType: this.aircaftModelIdList })
|
|
|
},
|
|
|
|
|
|
searchClick() {
|
|
|
- this.getMaintenanceaskAPI({ aircaftModelIdList: this.aircaftModelIdList })
|
|
|
+ this.getMaintenanceaskAPI({ aircraftType: this.aircaftModelIdList })
|
|
|
},
|
|
|
|
|
|
async addMaintenanceaskAPI() {
|
|
|
try {
|
|
|
delete this.form.aircaftModelName
|
|
|
- const { success } = await addMaintenanceask({ ...this.form })
|
|
|
- if (success) {
|
|
|
+ const { code } = await addMaintenanceask({ ...this.form })
|
|
|
+ if (code == 200) {
|
|
|
this.$message({
|
|
|
type: 'success',
|
|
|
message: '操作成功!'
|
|
|
})
|
|
|
- this.getMaintenanceaskAPI({ aircaftModelIdList: this.aircaftModelIdList })
|
|
|
+ this.getMaintenanceaskAPI({ aircraftType: this.aircaftModelIdList })
|
|
|
}
|
|
|
} catch (error) {}
|
|
|
},
|
|
|
|
|
|
async updateMaintenanceaskAPI() {
|
|
|
try {
|
|
|
- const { success } = await updateMaintenanceask({ ...this.form })
|
|
|
- if (success) {
|
|
|
+ const { code } = await updateMaintenanceask({ ...this.form })
|
|
|
+ if (code == 200) {
|
|
|
this.$message({
|
|
|
type: 'success',
|
|
|
message: '操作成功!'
|
|
|
})
|
|
|
- this.getMaintenanceaskAPI({ aircaftModelIdList: this.aircaftModelIdList })
|
|
|
+ this.getMaintenanceaskAPI({ aircraftType: this.aircaftModelIdList })
|
|
|
}
|
|
|
} catch (error) {}
|
|
|
},
|
|
|
|
|
|
- treeNodeClick(data) {
|
|
|
+ async treeNodeClick(data) {
|
|
|
this.$refs.table.clearSelection()
|
|
|
- this.currentNodeKey = data.id
|
|
|
+ this.currentNodeKey = this.form.aircraftType = data.id
|
|
|
this.currentNode = data
|
|
|
- this.aircaftModelIdList = this.getTreeLeafData(data.children.length ? data.children : [data]).map((e) => e.id)
|
|
|
- this.getMaintenanceaskAPI({ aircaftModelIdList: this.aircaftModelIdList })
|
|
|
+ this.aircaftModelIdList = this.getTreeLeafData(data.children.length ? data.children : [data])
|
|
|
+ .map((e) => e.id)
|
|
|
+ .toString()
|
|
|
+ this.getMaintenanceaskAPI({ aircraftType: this.aircaftModelIdList })
|
|
|
+ const getAircaftCatalogAllParams = {
|
|
|
+ keyWord: '',
|
|
|
+ aircaftModelIdList: [this.currentNodeKey]
|
|
|
+ }
|
|
|
+ const { data: data2 } = await getAircaftCatalogAll(getAircaftCatalogAllParams)
|
|
|
+ this.aircaftCatalogAll = data2
|
|
|
},
|
|
|
|
|
|
openDialog() {
|
|
|
this.dialogTitle = '新增'
|
|
|
this.dialogVisible = true
|
|
|
- this.form.aircaftModelName = this.currentNode.label
|
|
|
- this.form.aircaftModelId = this.currentNode.id
|
|
|
+ this.form.aircraftType = this.currentNode.id
|
|
|
+ this.form.status = 0
|
|
|
},
|
|
|
|
|
|
handleClose() {
|
|
@@ -359,6 +445,14 @@ export default {
|
|
|
this.removeMaintenanceaskAPI(row.map((e) => e.id))
|
|
|
})
|
|
|
.catch(() => {})
|
|
|
+ },
|
|
|
+ async checkDetails(row) {
|
|
|
+ this.form = deepClone(row)
|
|
|
+ const aircraftTypeItem = this.aircaftModelAll.find((item) => row.aircraftType === item.aircaftModelId)
|
|
|
+ const aircraftCodeItem = this.aircaftCatalogAll.find((item) => row.aircraftCode === item.aircaftCatalogId)
|
|
|
+ this.detailAircraftType = aircraftTypeItem.aircaftModelName
|
|
|
+ this.detailAircraftCode = aircraftCodeItem.aircaftCatalogCode
|
|
|
+ this.detailVisible = true
|
|
|
}
|
|
|
}
|
|
|
}
|