|
@@ -24,7 +24,7 @@
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
<el-form-item :label="t('iotMaintain.repairType')" prop="type">
|
|
<el-form-item :label="t('iotMaintain.repairType')" prop="type">
|
|
- <el-select v-model="formData.type" :placeholder="t('iotMaintain.repairTypeHolder')" clearable>
|
|
|
|
|
|
+ <el-select v-model="formData.type" :placeholder="t('iotMaintain.repairTypeHolder')" clearable @change="typeChange">
|
|
<el-option
|
|
<el-option
|
|
v-for="dict in getStrDictOptions(DICT_TYPE.PMS_MAIN_TYPE)"
|
|
v-for="dict in getStrDictOptions(DICT_TYPE.PMS_MAIN_TYPE)"
|
|
:key="dict.value"
|
|
:key="dict.value"
|
|
@@ -106,17 +106,64 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8" v-if="formData.type === 'out'">
|
|
<el-col :span="8" v-if="formData.type === 'out'">
|
|
- <el-form-item :label="t('iotMaintain.supplier')" prop="supplier" :rules="formData.type==='out'?supplierRules:[]">
|
|
|
|
- <el-select
|
|
|
|
|
|
+ <el-form-item :label="t('iotMaintain.applyPerson')" prop="applyPersonId" :rules="formData.type==='out'?classifyRules:[]">
|
|
|
|
+ <el-select v-model="formData.applyPersonId" :placeholder="t('iotMaintain.applyPersonHolder')" clearable>
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="person in applyPeoPle"
|
|
|
|
+ :key="person.oaId"
|
|
|
|
+ :label="person.lastname"
|
|
|
|
+ :value="person.oaId"
|
|
|
|
+ />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="8" v-if="formData.type === 'out'">
|
|
|
|
+ <el-form-item :label="t('iotMaintain.maintainClassify')" prop="maintainClassify" :rules="formData.type==='out'?classifyRules:[]">
|
|
|
|
+ <el-select v-model="formData.maintainClassify" :placeholder="t('iotMaintain.maintainClassifyHolder')" clearable>
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="dict in getStrDictOptions(DICT_TYPE.PMS_MAIN_CLASSIFY)"
|
|
|
|
+ :key="dict.value"
|
|
|
|
+ :label="dict.label"
|
|
|
|
+ :value="dict.value"
|
|
|
|
+ />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="8" v-if="formData.type === 'out'">
|
|
|
|
+ <el-form-item :label="t('iotMaintain.kmHour')" prop="kmHour">
|
|
|
|
+ <el-input v-model="formData.kmHour" :placeholder="t('iotMaintain.kmHourHolder')" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="8" v-if="formData.type === 'out'">
|
|
|
|
+ <el-form-item :label="t('deviceForm.model')" prop="model" :rules="formData.type==='out'?modelRules:[]">
|
|
|
|
+ <el-input v-model="formData.model" :placeholder="t('deviceForm.modelHolder')" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="8" v-if="formData.type === 'out'">
|
|
|
|
+ <el-form-item :label="t('deviceForm.enable')" prop="enableDate" :rules="formData.type==='out'?modelRules:[]">
|
|
|
|
+ <el-date-picker
|
|
|
|
+ style="width: 150%"
|
|
|
|
+ v-model="formData.enableDate"
|
|
|
|
+ type="date"
|
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
|
+ :placeholder="t('deviceForm.enableHolder')"
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="8" v-if="formData.type === 'out'">
|
|
|
|
+ <div style="display: flex;flex-direction: row">
|
|
|
|
+ <el-form-item :label="t('iotMaintain.supplier')" prop="supplier" style="width: 86%" :rules="formData.type==='out'?supplierRules:[]">
|
|
|
|
+ <el-input
|
|
|
|
+ clearable
|
|
v-model="formData.supplier"
|
|
v-model="formData.supplier"
|
|
:placeholder="t('iotMaintain.suppHolder')"
|
|
:placeholder="t('iotMaintain.suppHolder')"
|
|
- :model-value="supplierLabel"
|
|
|
|
- @click="openCustomer('supplier')"
|
|
|
|
/>
|
|
/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+ <el-button type="info" @click="openCustomer('supplier')">请选择</el-button>
|
|
|
|
+ </div>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8" >
|
|
<el-col :span="8" >
|
|
- <el-form-item :label="t('iotMaintain.repairCosts')" prop="maintainFee">
|
|
|
|
|
|
+ <el-form-item :label="t('iotMaintain.repairCosts')" prop="maintainFee" :rules="formData.type==='out'?feeRules:[]">
|
|
<el-input-number
|
|
<el-input-number
|
|
:disabled="formData.type==='in'"
|
|
:disabled="formData.type==='in'"
|
|
v-model="formData.maintainFee"
|
|
v-model="formData.maintainFee"
|
|
@@ -127,18 +174,40 @@
|
|
/>
|
|
/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
|
|
+ <el-col :span="8" v-if="formData.type === 'out'">
|
|
|
|
+ <el-form-item :label="t('iotMaintain.projectManager')" prop="projectManager" :rules="formData.type==='out'?projectRules:[]">
|
|
|
|
+ <el-select v-model="formData.projectManager" :placeholder="t('iotMaintain.projectManagerHolder')" clearable filterable>
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="person in projectManager"
|
|
|
|
+ :key="person.oaId"
|
|
|
|
+ :label="person.lastname"
|
|
|
|
+ :value="person.oaId"
|
|
|
|
+ />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="8" v-if="formData.type === 'out'">
|
|
|
|
+ <el-form-item :label="t('iotMaintain.address')" prop="address">
|
|
|
|
+ <el-input v-model="formData.address"/>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
<el-col :span="8" v-if="formData.type === 'out'">
|
|
<el-col :span="8" v-if="formData.type === 'out'">
|
|
<el-form-item :label="t('iotMaintain.attachment')" prop="outFiles">
|
|
<el-form-item :label="t('iotMaintain.attachment')" prop="outFiles">
|
|
<UploadFile v-model="formData.outFiles" :is-show-tip="false" class="min-w-80px" multiple :limit="2" />
|
|
<UploadFile v-model="formData.outFiles" :is-show-tip="false" class="min-w-80px" multiple :limit="2" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
|
|
+ <el-col :span="16" v-if="formData.type === 'out'" >
|
|
|
|
+ <el-form-item :label="t('iotMaintain.maintainItem')" prop="maintainItem" :rules="formData.type==='out'?itemRules:[]">
|
|
|
|
+ <el-input type="textarea" v-model="formData.maintainItem"/>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
<el-col :span="16">
|
|
<el-col :span="16">
|
|
<el-form-item :label="t('iotMaintain.faultDescription')" prop="description">
|
|
<el-form-item :label="t('iotMaintain.faultDescription')" prop="description">
|
|
<el-input type="textarea" v-model="formData.description"/>
|
|
<el-input type="textarea" v-model="formData.description"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item :label="t('iotMaintain.repairDescription')" :rules="formData.type === 'in' ? descriptionRule : []" prop="maintainDescription">
|
|
|
|
|
|
+ <el-form-item :label="t('iotMaintain.repairDescription')" prop="maintainDescription">
|
|
<el-input type="textarea" v-model="formData.maintainDescription" />
|
|
<el-input type="textarea" v-model="formData.maintainDescription" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
@@ -303,6 +372,8 @@ const { params, name } = useRoute() // 查询参数
|
|
const id = params.id
|
|
const id = params.id
|
|
const supplierLabel = ref('') // 表单的类型:create - 新增;update - 修改
|
|
const supplierLabel = ref('') // 表单的类型:create - 新增;update - 修改
|
|
const totalFee = ref(0)
|
|
const totalFee = ref(0)
|
|
|
|
+const applyPeoPle = ref([])
|
|
|
|
+const projectManager = ref([])
|
|
const { wsCache } = useCache()
|
|
const { wsCache } = useCache()
|
|
const addFormData = ref({
|
|
const addFormData = ref({
|
|
name: '',
|
|
name: '',
|
|
@@ -311,6 +382,14 @@ const addFormData = ref({
|
|
bomNodeId: '',
|
|
bomNodeId: '',
|
|
})
|
|
})
|
|
const formData = ref({
|
|
const formData = ref({
|
|
|
|
+ kmHour:undefined,
|
|
|
|
+ maintainItem:undefined,
|
|
|
|
+ enableDate: undefined,
|
|
|
|
+ projectManager:undefined,
|
|
|
|
+ applyPersonId:undefined,
|
|
|
|
+ maintainClassify: undefined,
|
|
|
|
+ address:undefined,
|
|
|
|
+ model:undefined,
|
|
id: undefined,
|
|
id: undefined,
|
|
failureCode: undefined,
|
|
failureCode: undefined,
|
|
failureName: undefined,
|
|
failureName: undefined,
|
|
@@ -343,6 +422,11 @@ const formData = ref({
|
|
})
|
|
})
|
|
const failureTimeRule = [{ required: true, message: '故障时间不能为空', trigger: 'blur' }]
|
|
const failureTimeRule = [{ required: true, message: '故障时间不能为空', trigger: 'blur' }]
|
|
const supplierRules = [{ required: true, message: '供应商不能为空', trigger: 'blur' }]
|
|
const supplierRules = [{ required: true, message: '供应商不能为空', trigger: 'blur' }]
|
|
|
|
+const projectRules = [{ required: true, message: '项目经理不能为空', trigger: 'blur' }]
|
|
|
|
+const itemRules = [{ required: true, message: '维修项目不能为空', trigger: 'blur' }]
|
|
|
|
+const classifyRules = [{ required: true, message: '维修类别不能为空', trigger: 'blur' }]
|
|
|
|
+const feeRules = [{ required: true, message: '维修费用不能为空', trigger: 'blur' }]
|
|
|
|
+const modelRules = [{ required: true, message: '规格型号不能为空', trigger: 'blur' }]
|
|
const startRule = [{ required: true, message: '维修开始时间不能为空', trigger: 'blur' }]
|
|
const startRule = [{ required: true, message: '维修开始时间不能为空', trigger: 'blur' }]
|
|
const descriptionRule = [{required: true, message:'维修描述不能为空', trigger: 'blur' }]
|
|
const descriptionRule = [{required: true, message:'维修描述不能为空', trigger: 'blur' }]
|
|
const endRule = [{ required: true, message: '维修结束时间不能为空', trigger: 'blur' }]
|
|
const endRule = [{ required: true, message: '维修结束时间不能为空', trigger: 'blur' }]
|
|
@@ -352,6 +436,8 @@ const formRules = reactive({
|
|
type: [{ required: true, message: '维修类型不能为空', trigger: 'blur' }],
|
|
type: [{ required: true, message: '维修类型不能为空', trigger: 'blur' }],
|
|
ifStop: [{ required: true, message: '是否停机不能为空', trigger: 'blur' }],
|
|
ifStop: [{ required: true, message: '是否停机不能为空', trigger: 'blur' }],
|
|
failureName: [{ required: true, message: '故障名称不能为空', trigger: 'blur' }],
|
|
failureName: [{ required: true, message: '故障名称不能为空', trigger: 'blur' }],
|
|
|
|
+ description: [{ required: true, message: '故障描述不能为空', trigger: 'blur' }],
|
|
|
|
+ maintainDescription: [{ required: true, message: '维修描述不能为空', trigger: 'blur' }],
|
|
// failureTime: [{ required: true, message: '故障时间不能为空', trigger: 'blur' }],
|
|
// failureTime: [{ required: true, message: '故障时间不能为空', trigger: 'blur' }],
|
|
// maintainStartTime: [{ required: true, message: '维修开始时间不能为空', trigger: 'blur' }],
|
|
// maintainStartTime: [{ required: true, message: '维修开始时间不能为空', trigger: 'blur' }],
|
|
// maintainEndTime: [{ required: true, message: '维修结束时间不能为空', trigger: 'blur' }],
|
|
// maintainEndTime: [{ required: true, message: '维修结束时间不能为空', trigger: 'blur' }],
|
|
@@ -364,6 +450,19 @@ const formRules = reactive({
|
|
const addFormRules = reactive({
|
|
const addFormRules = reactive({
|
|
name: [{ required: true, message: '维修项不能为空', trigger: 'blur' }]
|
|
name: [{ required: true, message: '维修项不能为空', trigger: 'blur' }]
|
|
})
|
|
})
|
|
|
|
+
|
|
|
|
+const typeChange = async () =>{
|
|
|
|
+ if (formData.value.type === 'out') {
|
|
|
|
+ await IotMaintainApi.getApplyUsers("").then((res) => {
|
|
|
|
+ applyPeoPle.value = res
|
|
|
|
+ })
|
|
|
|
+ await IotMaintainApi.getProjectUsers("").then((res) => {
|
|
|
|
+ debugger
|
|
|
|
+ projectManager.value = res
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
const handleConfirm = () => {
|
|
const handleConfirm = () => {
|
|
addFormData.value.bomNodeId = Math.floor(100000 + Math.random() * 900000)
|
|
addFormData.value.bomNodeId = Math.floor(100000 + Math.random() * 900000)
|
|
|
|
|
|
@@ -377,8 +476,8 @@ const handleConfirm = () => {
|
|
addItemVisible.value = false
|
|
addItemVisible.value = false
|
|
}
|
|
}
|
|
const customerChoose = (row) => {
|
|
const customerChoose = (row) => {
|
|
- formData.value.supplier = row.id
|
|
|
|
- supplierLabel.value = row.name
|
|
|
|
|
|
+ formData.value.supplier = row.name
|
|
|
|
+ // supplierLabel.value = row.name
|
|
}
|
|
}
|
|
|
|
|
|
const customerFormRef = ref()
|
|
const customerFormRef = ref()
|
|
@@ -388,6 +487,8 @@ const openCustomer = (type) => {
|
|
const formRef = ref() // 表单 Ref
|
|
const formRef = ref() // 表单 Ref
|
|
const addFormRef = ref()
|
|
const addFormRef = ref()
|
|
const deviceChoose = (row) => {
|
|
const deviceChoose = (row) => {
|
|
|
|
+ formData.value.model = row.model
|
|
|
|
+ formData.value.enableDate = row.enableDate
|
|
formData.value.deviceId = row.id
|
|
formData.value.deviceId = row.id
|
|
formData.value.deviceName = row.deviceName
|
|
formData.value.deviceName = row.deviceName
|
|
formData.value.deviceCode = row.deviceCode
|
|
formData.value.deviceCode = row.deviceCode
|