Commit 82da31e5 authored by lei's avatar lei

Merge branch 'master' of http://h.gemho.cn:7099/lichunliang/yindong-tongbai-automation

# Conflicts:
#	src/views/equipment/equipmentMag/index.vue
parents e6ae69c6 b5069032
{
"mcpServers": {}
}
\ No newline at end of file
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
:before-upload="handleBeforeUpload" :before-upload="handleBeforeUpload"
:data="data" :data="data"
:limit="limit" :limit="limit"
:file-list="fileList"
:on-error="handleUploadError" :on-error="handleUploadError"
:on-exceed="handleExceed" :on-exceed="handleExceed"
:on-success="handleUploadSuccess" :on-success="handleUploadSuccess"
...@@ -18,7 +19,7 @@ ...@@ -18,7 +19,7 @@
<!-- 上传按钮 --> <!-- 上传按钮 -->
<el-button size="mini" type="primary">选取文件</el-button> <el-button size="mini" type="primary">选取文件</el-button>
<div slot="file" slot-scope="{ file }"> <div slot="file" slot-scope="{ file }">
<img class="el-upload-list__item-thumbnail" :src="baseUrl + file.url" alt /> <img class="el-upload-list__item-thumbnail" :src="file.url" alt />
<span class="el-upload-list__item-actions"> <span class="el-upload-list__item-actions">
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)"> <span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<i class="el-icon-zoom-in"></i> <i class="el-icon-zoom-in"></i>
...@@ -45,37 +46,6 @@ ...@@ -45,37 +46,6 @@
的文件 的文件
</div> </div>
</el-upload> </el-upload>
<!-- 文件列表 -->
<!-- <transition-group
ref="uploadFileList"
class="upload-file-list el-upload-list el-upload-list--text"
name="el-fade-in-linear"
tag="ul"
>
<li
:key="file.url"
class="el-upload-list__item ele-upload-list__item-content"
v-for="(file, index) in fileList"
>
<el-link
:href="`${baseUrl}${file.url}`"
:underline="false"
target="_blank"
>
<span class="el-icon-document"> {{ getFileName(file.name) }} </span>
</el-link>
<div class="ele-upload-list__item-content-action">
<el-link
:underline="false"
@click="handleDelete(index)"
type="danger"
v-if="!disabled"
>删除</el-link
>
</div>
</li>
</transition-group>-->
<el-dialog :visible.sync="dialogVisible" :append-to-body="true"> <el-dialog :visible.sync="dialogVisible" :append-to-body="true">
<img :src="dialogImageUrl" alt /> <img :src="dialogImageUrl" alt />
</el-dialog> </el-dialog>
...@@ -143,47 +113,45 @@ export default { ...@@ -143,47 +113,45 @@ export default {
}, },
dialogImageUrl: '', dialogImageUrl: '',
fileList: [], fileList: [],
} // 添加标志位
}, isInternalChange: false,
mounted() {
if (this.drag && !this.disabled) {
this.$nextTick(() => {
const element = this.$refs.uploadFileList?.$el || this.$refs.uploadFileList
Sortable.create(element, {
ghostClass: 'file-upload-darg',
onEnd: (evt) => {
const movedItem = this.fileList.splice(evt.oldIndex, 1)[0]
this.fileList.splice(evt.newIndex, 0, movedItem)
this.$emit('input', this.listToString(this.fileList))
},
})
})
} }
}, },
watch: { watch: {
// 回显
value: { value: {
handler(val) { handler(newVal, oldVal) {
if (val) { // 只有当变化不是由组件内部引起时,才处理
let temp = 1 if (!this.isInternalChange) {
// 首先将值转为数组 if (newVal) {
const list = Array.isArray(val) ? val : this.value.split(',') this.fileList = newVal.split(',').map((url) => ({ url: this.baseUrl + url }))
// 然后将数组转为对象数组 } else {
this.fileList = list.map((item) => { this.fileList = []
if (typeof item === 'string') { }
item = { name: item, url: item }
}
item.uid = item.uid || new Date().getTime() + temp++
return item
})
} else {
this.fileList = []
return []
} }
// 重置标志位
this.isInternalChange = false
}, },
deep: true, deep: true,
immediate: true, immediate: true,
}, },
}, },
mounted() {
if (this.drag && !this.disabled) {
this.$nextTick(() => {
const element = this.$refs.uploadFileList?.$el || this.$refs.uploadFileList
element &&
Sortable.create(element, {
ghostClass: 'file-upload-darg',
onEnd: (evt) => {
const movedItem = this.fileList.splice(evt.oldIndex, 1)[0]
this.fileList.splice(evt.newIndex, 0, movedItem)
this.$emit('input', this.listToString(this.fileList))
},
})
})
}
},
computed: { computed: {
// 是否显示提示 // 是否显示提示
showTip() { showTip() {
...@@ -233,12 +201,6 @@ export default { ...@@ -233,12 +201,6 @@ export default {
handleUploadSuccess(res, file) { handleUploadSuccess(res, file) {
if (res.code === 200) { if (res.code === 200) {
this.uploadList.push({ name: res.fileName, url: res.fileName }) this.uploadList.push({ name: res.fileName, url: res.fileName })
const updatedFile = this.$refs.fileUpload.uploadFiles.find((f) => f.uid === file.uid)
if (updatedFile) {
updatedFile.url = res.fileName
updatedFile.name = res.fileName
}
this.uploadedSuccessfully() this.uploadedSuccessfully()
} else { } else {
this.number-- this.number--
...@@ -249,10 +211,16 @@ export default { ...@@ -249,10 +211,16 @@ export default {
} }
}, },
handleRemove(file) { handleRemove(file) {
this.fileList.forEach((item, index) => { const updatedFile = this.$refs.fileUpload.uploadFiles
updatedFile.forEach((item, index) => {
if (item.url === file.url) { if (item.url === file.url) {
this.fileList.splice(index, 1) // 从组件上传列表中移除文件
this.$emit('handleRemove', this.listToString(this.fileList)) updatedFile.splice(index, 1)
// 从自己的上传列表中移除文件
this.uploadList.splice(index, 1)
// 在触发 input 事件前设置标志位
this.isInternalChange = true
this.$emit('handleRemove', this.listToString(this.uploadList))
} }
}) })
}, },
...@@ -263,29 +231,12 @@ export default { ...@@ -263,29 +231,12 @@ export default {
handleDownload(file) { handleDownload(file) {
console.log(file) console.log(file)
}, },
// 删除文件
handleDelete(index) {
this.fileList.splice(index, 1)
this.$emit('input', this.listToString(this.fileList))
},
// 上传结束处理 // 上传结束处理
uploadedSuccessfully() { uploadedSuccessfully() {
if (this.number > 0 && this.uploadList.length === this.number) { // 在触发 input 事件前设置标志位
this.fileList = this.fileList.concat(this.uploadList) this.isInternalChange = true
this.uploadList = [] this.$emit('input', this.listToString(this.uploadList))
this.number = 0 this.$modal.closeLoading()
this.$emit('input', this.listToString(this.fileList))
this.$modal.closeLoading()
}
},
// 获取文件名称
getFileName(name) {
// 如果是url那么取最后的名字 如果不是直接返回
if (name.lastIndexOf('/') > -1) {
return name.slice(name.lastIndexOf('/') + 1)
} else {
return name
}
}, },
// 对象转成指定字符串分隔 // 对象转成指定字符串分隔
listToString(list, separator) { listToString(list, separator) {
......
...@@ -8,7 +8,10 @@ ...@@ -8,7 +8,10 @@
label-width="68px" label-width="68px"
> >
<el-form-item label="设备类型" prop="deviceType"> <el-form-item label="设备类型" prop="deviceType">
<el-select v-model="queryParams.deviceType" placeholder=""> <el-select
v-model="queryParams.deviceType"
placeholder="请选择设备类型"
>
<el-option <el-option
v-for="item in deviceTypeList" v-for="item in deviceTypeList"
:key="item.id" :key="item.id"
...@@ -122,7 +125,7 @@ ...@@ -122,7 +125,7 @@
<el-input v-model="form.location" placeholder="请输入设备位置描述" /> <el-input v-model="form.location" placeholder="请输入设备位置描述" />
</el-form-item> </el-form-item>
<el-form-item label="设备类型" prop="deviceType"> <el-form-item label="设备类型" prop="deviceType">
<el-select v-model="form.deviceType" placeholder=""> <el-select v-model="form.deviceType" placeholder="请选择设备类型">
<el-option <el-option
v-for="item in deviceTypeList" v-for="item in deviceTypeList"
:key="item.id" :key="item.id"
...@@ -329,7 +332,7 @@ export default { ...@@ -329,7 +332,7 @@ export default {
handleDelete(row) { handleDelete(row) {
const ids = row.id || this.ids; const ids = row.id || this.ids;
this.$modal this.$modal
.confirm('是否确认删除设备类型编号为"' + ids + '"的数据项?') .confirm('是否确认删除设备类型编号为"' + row.deviceNo + '"的数据项?')
.then(function () { .then(function () {
return delDevice(ids); return delDevice(ids);
}) })
......
...@@ -94,7 +94,10 @@ export default { ...@@ -94,7 +94,10 @@ export default {
// 表单参数 // 表单参数
form: {}, form: {},
// 表单校验 // 表单校验
rules: {}, rules: {
typeName: [{ required: true, message: '类型名称不能为空', trigger: 'blur' }],
typeDeptIds: [{ required: true, message: '设备管理部门不能为空', trigger: 'blur' }],
},
} }
}, },
created() { created() {
......
...@@ -39,7 +39,6 @@ ...@@ -39,7 +39,6 @@
:data="placeList" :data="placeList"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="地点名称" align="center" prop="placeName" /> <el-table-column label="地点名称" align="center" prop="placeName" />
<el-table-column label="地点位置" align="center" prop="location" /> <el-table-column label="地点位置" align="center" prop="location" />
<el-table-column label="信息" align="center" prop="information" /> <el-table-column label="信息" align="center" prop="information" />
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
</el-row> </el-row>
<el-table v-loading="loading" :data="inspectionList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="inspectionList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" width="55" align="center" prop="id" /> <el-table-column label="ID" width="55" align="center" prop="id" />
<el-table-column label="巡检日期" align="center" prop="pollingData" width="180"> <el-table-column label="巡检日期" align="center" prop="pollingData" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
</el-row> </el-row>
<el-table v-loading="loading" :data="inspectionList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="inspectionList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="报修单编号" align="center" prop="repairsId" /> <el-table-column label="报修单编号" align="center" prop="repairsId" />
<el-table-column label="巡检日期" align="center" prop="pollingData" width="180"> <el-table-column label="巡检日期" align="center" prop="pollingData" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -31,6 +30,11 @@ ...@@ -31,6 +30,11 @@
<el-table-column label="巡检人" align="center" prop="inspectionUserName" /> <el-table-column label="巡检人" align="center" prop="inspectionUserName" />
<el-table-column label="设备名称" align="center" prop="deviceName" /> <el-table-column label="设备名称" align="center" prop="deviceName" />
<el-table-column label="设备状态" align="center" prop="deviceState"> <el-table-column label="设备状态" align="center" prop="deviceState">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.deviceState == 1" type="success">正常</el-tag> <el-tag v-if="scope.row.deviceState == 1" type="success">正常</el-tag>
<el-tag v-else type="danger">异常</el-tag> <el-tag v-else type="danger">异常</el-tag>
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="巡检日期" prop="pollingData"> <el-form-item label="设备类型" prop="deviceType">
<el-date-picker clearable v-model="queryParams.pollingData" type="date" value-format="yyyy-MM-dd" placeholder="请选择巡检日期"></el-date-picker> <el-select v-model="queryParams.deviceType" placeholder="请选择设备类型" clearable>
</el-form-item> <el-option v-for="item in deviceTypeList" :key="item.id" :label="item.typeName" :value="item.id" />
<el-form-item label="巡检人" prop="inspectionUserId"> </el-select>
<el-input v-model="queryParams.inspectionUserId" placeholder="请输入巡检人" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="设备名称" prop="deviceName"> <el-form-item label="设备名称" prop="deviceName">
<el-input v-model="queryParams.deviceName" placeholder="请输入设备名称" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.deviceName" placeholder="请输入设备名称" clearable @keyup.enter.native="handleQuery" />
...@@ -14,24 +13,17 @@ ...@@ -14,24 +13,17 @@
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button type="primary" size="mini" @click="handleAdd">新增巡检单</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['inspection:task:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['inspection:task:edit']"
>修改</el-button
>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="taskList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="taskList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" align="center" prop="id" /> <el-table-column label="报修单编号" align="center" prop="id" />
<el-table-column label="巡检日期" align="center" prop="pollingData" width="180"> <el-table-column label="巡检日期" align="center" prop="pollingData" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.pollingData, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.pollingData, '{y}-{m}-{d}') }}</span>
...@@ -39,13 +31,12 @@ ...@@ -39,13 +31,12 @@
</el-table-column> </el-table-column>
<el-table-column label="巡检人" align="center" prop="inspectionUserName" /> <el-table-column label="巡检人" align="center" prop="inspectionUserName" />
<el-table-column label="设备名称" align="center" prop="deviceName" /> <el-table-column label="设备名称" align="center" prop="deviceName" />
<el-table-column label="设备编号" align="center" prop="deviceNo" />
<el-table-column label="巡检状态" align="center" prop="taskState"> <el-table-column label="巡检状态" align="center" prop="taskState">
<template slot-scope="scope">{{ scope.row.taskState == 1 ? '已完成' : '巡检中' }}</template> <template slot-scope="scope">{{ scope.row.taskState == 1 ? '已完成' : '巡检中' }}</template>
</el-table-column> </el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['inspection:task:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['inspection:task:remove']">删除</el-button> <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['inspection:task:remove']">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -55,48 +46,38 @@ ...@@ -55,48 +46,38 @@
<!-- 添加或修改巡检任务对话框 --> <!-- 添加或修改巡检任务对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-form-item label="巡检日期" prop="pollingData"> <el-form-item label="设备类型" prop="deviceType">
<el-select v-model="form.deviceType" placeholder="请选择设备类型" clearable @change="getDeviceList">
<el-option v-for="item in deviceTypeList" :key="item.id" :label="item.typeName" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="设备名称" prop="deviceId">
<el-select v-model="form.deviceId" placeholder="请选择设备" clearable>
<el-option v-for="item in deviceList" :key="item.id" :label="item.deviceName" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="设备编号" prop="deviceNo">
<el-input v-model="form.deviceNo" placeholder="自动获取设备编号" disabled></el-input>
</el-form-item>
<el-form-item label="巡检截止日期" prop="pollingData">
<el-date-picker <el-date-picker
clearable clearable
v-model="form.pollingData" v-model="form.pollingData"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="请选择巡检日期" placeholder="请选择巡检截止日期"
:picker-options="pickerOptions" :picker-options="pickerOptions"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="巡检人" prop="inspectionUserId"> <el-form-item label="部门名称" prop="maintainDeptId">
<!-- <el-input <treeselect v-model="form.maintainDeptId" :options="deptOptions" :normalizer="normalizer" placeholder="请选择部门名称" @select="deptSelect" />
v-model="form.inspectionUserId"
placeholder="请输入巡检人"
/>-->
<!--远程搜索-->
<el-select
v-model="form.inspectionUserId"
filterable
remote
reserve-keyword
placeholder="请输入关键词"
:remote-method="remoteMethod"
:loading="loading"
>
<el-option v-for="item in useroptions" :key="item.userId" :label="item.nickName + '/' + item.nickName" :value="item.userId"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="设备类型" prop="deviceType"> <el-form-item label="巡检人" prop="inspectionUserId">
<el-select v-model="form.deviceType" placeholder="请选择设备类型" clearable @change="getDeviceList"> <el-select v-model="form.inspectionUserId" placeholder="请选择巡检人">
<el-option v-for="item in deviceTypeList" :key="item.id" :label="item.typeName" :value="item.id" /> <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId"> </el-option>
</el-select>
</el-form-item>
<el-form-item v-if="form.deviceType" label="设备名称" prop="deviceName">
<el-select v-model="form.deviceId" placeholder="请选择设备" clearable>
<el-option v-for="item in deviceList" :key="item.id" :label="item.deviceName" :value="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
...@@ -110,7 +91,14 @@ ...@@ -110,7 +91,14 @@
import { listTask, getTask, delTask, addTask, updateTask, getInspectionUser } from '@/api/patrol/patrolProject' import { listTask, getTask, delTask, addTask, updateTask, getInspectionUser } from '@/api/patrol/patrolProject'
import { listDevice as deviceTypeList } from '@/api/device/deviceType' import { listDevice as deviceTypeList } from '@/api/device/deviceType'
import { listDevice } from '@/api/device/device' import { listDevice } from '@/api/device/device'
import { listDept } from '@/api/system/dept'
import { listUser } from '@/api/system/user'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
export default { export default {
components: {
Treeselect,
},
name: 'Task', name: 'Task',
data() { data() {
return { return {
...@@ -141,14 +129,24 @@ export default { ...@@ -141,14 +129,24 @@ export default {
deviceId: null, deviceId: null,
taskState: null, taskState: null,
}, },
queryParamsUser: {
pageNum: 1,
pageSize: 100,
userName: undefined,
phonenumber: undefined,
status: undefined,
deptId: undefined,
},
// 表单参数 // 表单参数
form: {}, form: {},
deptOptions: [],
userList: [],
// 表单校验 // 表单校验
rules: { rules: {
pollingData: [ pollingData: [
{ {
required: true, required: true,
message: '巡检日期不能为空', message: '巡检截止日期不能为空',
trigger: 'blur', trigger: 'blur',
}, },
], ],
...@@ -166,6 +164,13 @@ export default { ...@@ -166,6 +164,13 @@ export default {
trigger: 'blur', trigger: 'blur',
}, },
], ],
maintainDeptId: [
{
required: true,
message: '部门名称不能为空',
trigger: 'blur',
},
],
deviceId: [ deviceId: [
{ {
required: true, required: true,
...@@ -204,9 +209,57 @@ export default { ...@@ -204,9 +209,57 @@ export default {
this.loading = false this.loading = false
}) })
}, },
/** 转换部门数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children
}
return {
id: node.deptId,
label: node.deptName,
children: node.children,
}
},
deptSelect(val) {
this.queryParamsUser.deptId = val.deptId
this.form.inspectionUserId = null
this.getUserList()
},
/** 查询用户列表 */
getUserList() {
listUser(this.addDateRange(this.queryParamsUser)).then((response) => {
this.userList = response.rows
})
},
//根据设备类型查询设备列表 //根据设备类型查询设备列表
getDeviceList() { getDeviceList(val) {
// 清空部门
this.deptOptions = []
const typeDeptIds = this.deviceTypeList.find((item) => item.id === val).typeDeptIds
// 如果有关联的部门ID,则进行查询
if (typeDeptIds && typeDeptIds.length > 0) {
// 创建所有 listDept 请求的 Promise 数组
const deptPromises = typeDeptIds.map((deptId) =>
listDept({ deptId: deptId })
.then((response) => {
// 处理并返回数据
return this.handleTree(response.data, 'deptId')
})
.catch((error) => {
return [] // 返回空数组,避免 Promise.all 失败
})
)
//等待所有请求完成
Promise.all(deptPromises)
.then((deptData) => {
this.deptOptions = deptData.flat()
})
.catch((error) => {
console.error('获取部门数据失败:', error)
})
}
this.form.deviceId = null
this.form.inspectionUserId = null
listDevice({ listDevice({
deviceType: this.form.deviceType, deviceType: this.form.deviceType,
}).then((response) => { }).then((response) => {
...@@ -274,20 +327,6 @@ export default { ...@@ -274,20 +327,6 @@ export default {
this.open = true this.open = true
this.title = '添加巡检任务' this.title = '添加巡检任务'
}, },
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
const id = row.id || this.ids
this.getDeviceList()
getTask(id).then((response) => {
this.form = {
...response.data,
deviceType: Number(response.data.deviceType),
}
this.open = true
this.title = '修改巡检任务'
})
},
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.$refs['form'].validate((valid) => { this.$refs['form'].validate((valid) => {
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="设备类型" prop="deviceType"> <el-form-item label="设备类型" prop="deviceType">
<el-select <el-select v-model="queryParams.deviceType" placeholder="请选择设备类型">
v-model="queryParams.deviceType" <el-option v-for="item in deviceTypeList" :key="item.id" :label="item.typeName" :value="item.id"> </el-option>
placeholder="请选择设备类型"
>
<el-option
v-for="item in deviceTypeList"
:key="item.id"
:label="item.typeName"
:value="item.id"
>
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="" prop="deviceName"> <el-form-item label="设备名称" prop="deviceName">
<el-input <el-input v-model="queryParams.deviceName" placeholder="请输入设备名称" clearable @keyup.enter="handleQuery" />
v-model="queryParams.deviceName"
placeholder="请输入设备名称"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery" <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
>搜索</el-button
>
<el-button icon="Refresh" @click="resetQuery">重置</el-button> <el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<right-toolbar <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="maintainList">
<el-table
v-loading="loading"
:data="maintainList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="维修单编号" align="center" prop="id" /> <el-table-column label="维修单编号" align="center" prop="id" />
<el-table-column label="设备名称" align="center" prop="deviceName" /> <el-table-column label="设备名称" align="center" prop="deviceName" />
<el-table-column label="设备编码" align="center" prop="deviceNo" /> <el-table-column label="设备编码" align="center" prop="deviceNo" />
<el-table-column <el-table-column label="巡检人" align="center" prop="inspectionUserName" />
label="巡检人" <el-table-column label="设备故障描述" align="center" prop="deviceErrorDetail">
align="center"
prop="inspectionUserName"
/>
<el-table-column
label="设备故障描述"
align="center"
prop="deviceErroDetail"
/>
<el-table-column
label="维修单日期"
align="center"
prop="repairsDate"
width="180"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.repairsDate, "{y}-{m}-{d}") }}</span> <span>{{ scope.row.deviceErrorDetail || '-' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="维修人" align="center" prop="maintainUserName" /> <el-table-column label="维修单日期" align="center" prop="repairsDate" width="180">
<el-table-column
label="维修情况描述"
align="center"
prop="maintainDetail"
/>
<el-table-column
label="维修日期"
align="center"
prop="maintainDate"
width="180"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.maintainDate, "{y}-{m}-{d}") }}</span> <span>{{ parseTime(scope.row.repairsDate, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="维修状态" align="center" prop="orderStates"> <el-table-column label="维修人" align="center" prop="maintainUserName" />
<el-table-column label="维修情况描述" align="center" prop="maintainDetail" />
<el-table-column label="维修日期" align="center" prop="maintainDate" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ <span>{{ parseTime(scope.row.maintainDate, '{y}-{m}-{d}') }}</span>
selectDictLabels(orderStatesList, scope.row.orderStates)
}}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改维修历史对话框 --> <!-- 添加或修改维修历史对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
...@@ -122,55 +60,25 @@ ...@@ -122,55 +60,25 @@
<el-input v-model="form.deviceName" placeholder="请输入设备名称" /> <el-input v-model="form.deviceName" placeholder="请输入设备名称" />
</el-form-item> </el-form-item>
<el-form-item label="巡检人id" prop="inspectionUserId"> <el-form-item label="巡检人id" prop="inspectionUserId">
<el-input <el-input v-model="form.inspectionUserId" placeholder="请输入巡检人id" />
v-model="form.inspectionUserId"
placeholder="请输入巡检人id"
/>
</el-form-item> </el-form-item>
<el-form-item label="设备故障描述" prop="deviceErroDetail"> <el-form-item label="设备故障描述" prop="deviceErrorDetail">
<el-input <el-input v-model="form.deviceErrorDetail" placeholder="请输入设备故障描述" />
v-model="form.deviceErroDetail"
placeholder="请输入设备故障描述"
/>
</el-form-item> </el-form-item>
<el-form-item label="维修单日期" prop="repairsDate"> <el-form-item label="维修单日期" prop="repairsDate">
<el-date-picker <el-date-picker clearable v-model="form.repairsDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择维修单日期"> </el-date-picker>
clearable
v-model="form.repairsDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择维修单日期"
>
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="维修人id" prop="maintainUserId"> <el-form-item label="维修人" prop="maintainUser">
<el-input <el-input v-model="form.maintainUserId" placeholder="请输入维修人" />
v-model="form.maintainUserId"
placeholder="请输入维修人id"
/>
</el-form-item> </el-form-item>
<el-form-item label="维修情况描述" prop="maintainDetail"> <el-form-item label="维修情况描述" prop="maintainDetail">
<el-input <el-input v-model="form.maintainDetail" placeholder="请输入维修情况描述" />
v-model="form.maintainDetail"
placeholder="请输入维修情况描述"
/>
</el-form-item> </el-form-item>
<el-form-item label="维修日期" prop="maintainDate"> <el-form-item label="维修日期" prop="maintainDate">
<el-date-picker <el-date-picker clearable v-model="form.maintainDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择维修日期"> </el-date-picker>
clearable
v-model="form.maintainDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择维修日期"
>
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -182,17 +90,11 @@ ...@@ -182,17 +90,11 @@
</template> </template>
<script> <script>
import { import { listMaintain, getMaintain, delMaintain, addMaintain, updateMaintain } from '@/api/repair/repairLog'
listMaintain, import { listDevice as listDeviceType } from '@/api/device/deviceType'
getMaintain,
delMaintain,
addMaintain,
updateMaintain,
} from "@/api/repair/repairLog";
import { listDevice as listDeviceType } from "@/api/device/deviceType";
export default { export default {
name: "Maintain", name: 'Maintain',
data() { data() {
return { return {
// 遮罩层 // 遮罩层
...@@ -210,7 +112,7 @@ export default { ...@@ -210,7 +112,7 @@ export default {
// 维修历史表格数据 // 维修历史表格数据
maintainList: [], maintainList: [],
// 弹出层标题 // 弹出层标题
title: "", title: '',
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
// 查询参数 // 查询参数
...@@ -222,7 +124,7 @@ export default { ...@@ -222,7 +124,7 @@ export default {
deviceNo: null, deviceNo: null,
deviceName: null, deviceName: null,
inspectionUserId: null, inspectionUserId: null,
deviceErroDetail: null, deviceErrorDetail: null,
repairsDate: null, repairsDate: null,
maintainUserId: null, maintainUserId: null,
maintainDetail: null, maintainDetail: null,
...@@ -230,37 +132,40 @@ export default { ...@@ -230,37 +132,40 @@ export default {
maintainType: null, maintainType: null,
deviceType: null, deviceType: null,
}, },
orderStatesList: [
{ label: '派单中', value: 0 },
{ label: '维修中', value: 1 },
{ label: '已完成', value: 2 },
],
deviceTypeList: [], deviceTypeList: [],
// 表单参数 // 表单参数
form: {}, form: {},
// 表单校验 // 表单校验
rules: { rules: {
repairsId: [ repairsId: [{ required: true, message: '维修单编号不能为空', trigger: 'blur' }],
{ required: true, message: "维修单编号不能为空", trigger: "blur" },
],
}, },
}; }
}, },
created() { created() {
this.getList(); this.getList()
listDeviceType().then((response) => { listDeviceType().then((response) => {
this.deviceTypeList = response.rows; this.deviceTypeList = response.rows
}); })
}, },
methods: { methods: {
/** 查询维修历史列表 */ /** 查询维修历史列表 */
getList() { getList() {
this.loading = true; this.loading = true
listMaintain(this.queryParams).then((response) => { listMaintain(this.queryParams).then((response) => {
this.maintainList = response.rows; this.maintainList = response.rows
this.total = response.total; this.total = response.total
this.loading = false; this.loading = false
}); })
}, },
// 取消按钮 // 取消按钮
cancel() { cancel() {
this.open = false; this.open = false
this.reset(); this.reset()
}, },
// 表单重置 // 表单重置
reset() { reset() {
...@@ -271,7 +176,7 @@ export default { ...@@ -271,7 +176,7 @@ export default {
deviceNo: null, deviceNo: null,
deviceName: null, deviceName: null,
inspectionUserId: null, inspectionUserId: null,
deviceErroDetail: null, deviceErrorDetail: null,
repairsDate: null, repairsDate: null,
maintainUserId: null, maintainUserId: null,
maintainDetail: null, maintainDetail: null,
...@@ -282,85 +187,79 @@ export default { ...@@ -282,85 +187,79 @@ export default {
updateBy: null, updateBy: null,
updateTime: null, updateTime: null,
remark: null, remark: null,
}; }
this.resetForm("form"); this.resetForm('form')
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
this.queryParams.pageNum = 1; this.queryParams.pageNum = 1
this.getList(); this.getList()
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.resetForm("queryForm"); this.resetForm('queryForm')
this.handleQuery(); this.handleQuery()
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset(); this.reset()
this.open = true; this.open = true
this.title = "添加维修历史"; this.title = '添加维修历史'
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset()
const id = row.id || this.ids; const id = row.id || this.ids
getMaintain(id).then((response) => { getMaintain(id).then((response) => {
this.form = response.data; this.form = response.data
this.open = true; this.open = true
this.title = "修改维修历史"; this.title = '修改维修历史'
}); })
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.$refs["form"].validate((valid) => { this.$refs['form'].validate((valid) => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
updateMaintain(this.form).then((response) => { updateMaintain(this.form).then((response) => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess('修改成功')
this.open = false; this.open = false
this.getList(); this.getList()
}); })
} else { } else {
addMaintain(this.form).then((response) => { addMaintain(this.form).then((response) => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess('新增成功')
this.open = false; this.open = false
this.getList(); this.getList()
}); })
} }
} }
}); })
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const ids = row.id || this.ids; const ids = row.id || this.ids
this.$modal this.$modal
.confirm('是否确认删除维修历史编号为"' + ids + '"的数据项?') .confirm('是否确认删除维修历史编号为"' + ids + '"的数据项?')
.then(function () { .then(function () {
return delMaintain(ids); return delMaintain(ids)
}) })
.then(() => { .then(() => {
this.getList(); this.getList()
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess('删除成功')
}) })
.catch(() => {}); .catch(() => {})
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download( this.download(
"maintain/maintain/export", 'maintain/maintain/export',
{ {
...this.queryParams, ...this.queryParams,
}, },
`maintain_${new Date().getTime()}.xlsx` `maintain_${new Date().getTime()}.xlsx`
); )
}, },
}, },
}; }
</script> </script>
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<el-option v-for="item in deviceTypeList" :key="item.id" :label="item.typeName" :value="item.id"> </el-option> <el-option v-for="item in deviceTypeList" :key="item.id" :label="item.typeName" :value="item.id"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="" prop="deviceName"> <el-form-item label="设备名称" prop="deviceName">
<el-input v-model="queryParams.deviceName" placeholder="请输入设备名称" clearable @keyup.enter="handleQuery" /> <el-input v-model="queryParams.deviceName" placeholder="请输入设备名称" clearable @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
...@@ -21,11 +21,14 @@ ...@@ -21,11 +21,14 @@
</el-row> </el-row>
<el-table v-loading="loading" :data="workOrderList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="workOrderList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="维修单编号" align="center" prop="id" /> <el-table-column label="维修单编号" align="center" prop="id" />
<el-table-column label="设备名称" align="center" prop="deviceName" /> <el-table-column label="设备名称" align="center" prop="deviceName" />
<el-table-column label="设备编码" align="center" prop="deviceNo" /> <el-table-column label="设备编码" align="center" prop="deviceNo" />
<el-table-column label="巡检人" align="center" prop="inspectionUserName" /> <el-table-column label="巡检人" align="center" prop="inspectionUserName">
<template slot-scope="scope">
<span>{{ scope.row.inspectionUserName || '-' }}</span>
</template>
</el-table-column>
<el-table-column label="设备故障描述" align="center" prop="deviceErrorDetail" /> <el-table-column label="设备故障描述" align="center" prop="deviceErrorDetail" />
<el-table-column label="故障日期" align="center" prop="erroDate" width="180"> <el-table-column label="故障日期" align="center" prop="erroDate" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -37,12 +40,27 @@ ...@@ -37,12 +40,27 @@
<span>{{ selectDictLabels(orderStatesList, scope.row.orderStates) }}</span> <span>{{ selectDictLabels(orderStatesList, scope.row.orderStates) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="维修人" align="center" prop="maintainUserName">
<template slot-scope="scope">
<span>{{ scope.row.maintainUserName || '-' }}</span>
</template>
</el-table-column>
<el-table-column label="维修情况描述" align="center" prop="maintainDetail">
<template slot-scope="scope">
<span>{{ scope.row.maintainDetail || '-' }}</span>
</template>
</el-table-column>
<el-table-column label="维修日期" align="center" prop="maintainDate" width="180">
<template slot-scope="scope">
<span>{{ scope.row.maintainDate ? parseTime(scope.row.maintainDate, '{y}-{m}-{d}') : '-' }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" @click="handleUpdate(scope.row)" v-hasPermi="['workOrder:workOrder:edit']" v-if="scope.row.orderStates == 0" <el-button size="mini" type="text" @click="handleUpdate(scope.row)" v-hasPermi="['workOrder:workOrder:edit']" v-if="scope.row.orderStates == 0"
>派单</el-button >派单</el-button
> >
<el-button size="mini" type="text" @click="handleView(scope.row)" v-hasPermi="['workOrder:workOrder:view']" v-if="false">查看</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -58,7 +76,7 @@ ...@@ -58,7 +76,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="设备名称" prop="deviceName"> <el-form-item label="设备名称" prop="deviceName">
<el-select v-model="form.deviceName" placeholder="请选择设备名称" @change="getDeviceNo"> <el-select v-model="form._deviceName" placeholder="请选择设备名称" value-key="id" @change="getDeviceNo">
<el-option v-for="item in deviceNameList" :key="item.id" :label="item.deviceName" :value="item"> </el-option> <el-option v-for="item in deviceNameList" :key="item.id" :label="item.deviceName" :value="item"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -69,8 +87,8 @@ ...@@ -69,8 +87,8 @@
<el-form-item label="设备故障描述" prop="deviceErrorDetail"> <el-form-item label="设备故障描述" prop="deviceErrorDetail">
<el-input v-model="form.deviceErrorDetail" placeholder="请输入设备故障描述" /> <el-input v-model="form.deviceErrorDetail" placeholder="请输入设备故障描述" />
</el-form-item> </el-form-item>
<el-form-item label="设备故障图片" prop="deviceErroPhotos"> <el-form-item label="设备故障图片" prop="deviceErrorPhotos">
<FileUploadInspec v-model="form.deviceErroPhotos" @input="fileSuccess" @handleRemove="handleRemove" :fileType="['jpg', 'jpeg', 'png']" /> <FileUploadInspec :value="form.deviceErrorPhotos" @input="fileSuccess" @handleRemove="handleRemove" :fileType="['jpg', 'jpeg', 'png']" />
</el-form-item> </el-form-item>
<el-form-item label="故障日期" prop="erroDate"> <el-form-item label="故障日期" prop="erroDate">
<el-date-picker clearable v-model="form.erroDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择故障日期"> </el-date-picker> <el-date-picker clearable v-model="form.erroDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择故障日期"> </el-date-picker>
...@@ -162,7 +180,7 @@ export default { ...@@ -162,7 +180,7 @@ export default {
deviceName: null, deviceName: null,
inspectionUserId: null, inspectionUserId: null,
deviceErrorDetail: null, deviceErrorDetail: null,
deviceErroPhotos: null, deviceErrorPhotos: null,
erroDate: null, erroDate: null,
orderStates: null, orderStates: null,
maintainUserId: null, maintainUserId: null,
...@@ -189,7 +207,7 @@ export default { ...@@ -189,7 +207,7 @@ export default {
// 表单校验 // 表单校验
rules: { rules: {
repairsId: [{ required: true, message: '维修单编号不能为空', trigger: 'blur' }], repairsId: [{ required: true, message: '维修单编号不能为空', trigger: 'blur' }],
deviceErroPhotos: [{ required: true, message: '设备故障图片不能为空', trigger: 'blur' }], deviceErrorPhotos: [{ required: true, message: '设备故障图片不能为空', trigger: 'blur' }],
deviceErrorDetail: [{ required: true, message: '设备故障描述不能为空', trigger: 'blur' }], deviceErrorDetail: [{ required: true, message: '设备故障描述不能为空', trigger: 'blur' }],
erroDate: [{ required: true, message: '故障日期不能为空', trigger: 'blur' }], erroDate: [{ required: true, message: '故障日期不能为空', trigger: 'blur' }],
maintainEndDate: [{ required: true, message: '维修截止日期不能为空', trigger: 'blur' }], maintainEndDate: [{ required: true, message: '维修截止日期不能为空', trigger: 'blur' }],
...@@ -223,11 +241,38 @@ export default { ...@@ -223,11 +241,38 @@ export default {
}, },
// 设备名称 // 设备名称
getDeviceName(val) { getDeviceName(val) {
// 清空部门
this.deptOptions = []
const typeDeptIds = this.deviceTypeList.find((item) => item.id === val).typeDeptIds
// 如果有关联的部门ID,则进行查询
if (typeDeptIds && typeDeptIds.length > 0) {
// 创建所有 listDept 请求的 Promise 数组
const deptPromises = typeDeptIds.map((deptId) =>
listDept({ deptId: deptId })
.then((response) => {
// 处理并返回数据
return this.handleTree(response.data, 'deptId')
})
.catch((error) => {
return [] // 返回空数组,避免 Promise.all 失败
})
)
//等待所有请求完成
Promise.all(deptPromises)
.then((deptData) => {
this.deptOptions = deptData.flat()
})
.catch((error) => {
console.error('获取部门数据失败:', error)
})
}
listDeviceName({ deviceType: val }).then((response) => { listDeviceName({ deviceType: val }).then((response) => {
this.deviceNameList = response.rows this.deviceNameList = response.rows
}) })
this.form.deviceName = null this.form.deviceName = null
this.form.deviceNo = null this.form.deviceNo = null
this.form.maintainDeptId = null
}, },
// 取消按钮 // 取消按钮
cancel() { cancel() {
...@@ -244,7 +289,7 @@ export default { ...@@ -244,7 +289,7 @@ export default {
deviceName: null, deviceName: null,
inspectionUserId: null, inspectionUserId: null,
deviceErrorDetail: null, deviceErrorDetail: null,
deviceErroPhotos: null, deviceErrorPhotos: null,
erroDate: null, erroDate: null,
orderStates: null, orderStates: null,
maintainUserId: null, maintainUserId: null,
...@@ -280,13 +325,12 @@ export default { ...@@ -280,13 +325,12 @@ export default {
this.reset() this.reset()
this.open = true this.open = true
this.title = '添加工单派遣' this.title = '添加工单派遣'
listDept().then((response) => { // listDept().then((response) => {
this.deptOptions = this.handleTree(response.data, 'deptId') // this.deptOptions = this.handleTree(response.data, 'deptId')
}) // })
}, },
/** 派单 */ /** 派单 */
handleUpdate(row) { handleUpdate(row) {
this.reset()
const id = row.id || this.ids const id = row.id || this.ids
listDept().then((response) => { listDept().then((response) => {
this.deptOptions = this.handleTree(response.data, 'deptId') this.deptOptions = this.handleTree(response.data, 'deptId')
...@@ -297,6 +341,19 @@ export default { ...@@ -297,6 +341,19 @@ export default {
this.title = '派遣' this.title = '派遣'
}) })
}, },
// 查看
handleView(row) {
const id = row.id || this.ids
// listDept().then((response) => {
// this.deptOptions = this.handleTree(response.data, 'deptId')
// })
getWorkOrder(id).then((response) => {
this.form = response.data
this.open = true
this.title = '查看'
console.log(this.form)
})
},
/** 转换部门数据结构 */ /** 转换部门数据结构 */
normalizer(node) { normalizer(node) {
if (node.children && !node.children.length) { if (node.children && !node.children.length) {
...@@ -310,6 +367,7 @@ export default { ...@@ -310,6 +367,7 @@ export default {
}, },
deptSelect(val) { deptSelect(val) {
this.queryParamsUser.deptId = val.deptId this.queryParamsUser.deptId = val.deptId
this.form.maintainUserId = null
this.getUserList() this.getUserList()
}, },
/** 查询用户列表 */ /** 查询用户列表 */
...@@ -319,6 +377,7 @@ export default { ...@@ -319,6 +377,7 @@ export default {
}) })
}, },
getDeviceNo(val) { getDeviceNo(val) {
this.form._deviceName = val
this.form.deviceName = val.deviceName this.form.deviceName = val.deviceName
this.form.deviceNo = val.deviceNo this.form.deviceNo = val.deviceNo
this.form.deviceId = val.deviceId this.form.deviceId = val.deviceId
...@@ -327,6 +386,9 @@ export default { ...@@ -327,6 +386,9 @@ export default {
submitForm() { submitForm() {
this.$refs['form'].validate((valid) => { this.$refs['form'].validate((valid) => {
if (valid) { if (valid) {
if (this.form._deviceName) {
delete this.form._deviceName
}
addWorkOrder(this.form).then((response) => { addWorkOrder(this.form).then((response) => {
this.$modal.msgSuccess('新增成功') this.$modal.msgSuccess('新增成功')
this.open = false this.open = false
...@@ -337,20 +399,24 @@ export default { ...@@ -337,20 +399,24 @@ export default {
}, },
// 派单提交 // 派单提交
submitFormOrder() { submitFormOrder() {
updateWorkOrder({ ...this.form, ...this.formpd }).then((response) => { this.$refs['formpd'].validate((valid) => {
this.$modal.msgSuccess('派单成功') if (valid) {
this.openpd = false updateWorkOrder({ ...this.form, ...this.formpd }).then((response) => {
this.getList() this.$modal.msgSuccess('派单成功')
this.openpd = false
this.getList()
})
}
}) })
}, },
// 文件上传回调 // 文件上传回调
fileSuccess(val) { fileSuccess(val) {
this.form.deviceErroPhotos = val this.form.deviceErrorPhotos = val
}, },
// 文件删除 // 文件删除
handleRemove(url) { handleRemove(url) {
this.form.deviceErroPhotos = url this.form.deviceErrorPhotos = url
}, },
}, },
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment