diff --git a/src/api/eqpt/measurementPlan/task.ts b/src/api/eqpt/measurementPlan/task.ts new file mode 100644 index 0000000..579609c --- /dev/null +++ b/src/api/eqpt/measurementPlan/task.ts @@ -0,0 +1,36 @@ +/** + * r任务单管理接口 + */ +import request from '@/api/index' +// 分页列表 +export function getListPage(data: object) { + return request({ + url: '/business/order/listPage', + method: 'post', + data, + }) +} +// 新建 +export function addTask(data: object) { + return request({ + url: '/business/order/add', + method: 'post', + data, + }) +} +// 更新 +export function updateTask(data: object) { + return request({ + url: '/business/order/update', + method: 'post', + data, + }) +} +// 详情 +export function detailTask(data: object) { + return request({ + url: '/business/order/detail', + method: 'post', + data, + }) +} diff --git a/src/api/eqpt/measurementPlan/task.ts b/src/api/eqpt/measurementPlan/task.ts new file mode 100644 index 0000000..579609c --- /dev/null +++ b/src/api/eqpt/measurementPlan/task.ts @@ -0,0 +1,36 @@ +/** + * r任务单管理接口 + */ +import request from '@/api/index' +// 分页列表 +export function getListPage(data: object) { + return request({ + url: '/business/order/listPage', + method: 'post', + data, + }) +} +// 新建 +export function addTask(data: object) { + return request({ + url: '/business/order/add', + method: 'post', + data, + }) +} +// 更新 +export function updateTask(data: object) { + return request({ + url: '/business/order/update', + method: 'post', + data, + }) +} +// 详情 +export function detailTask(data: object) { + return request({ + url: '/business/order/detail', + method: 'post', + data, + }) +} diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index 32921cd..b8d1ab0 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -330,8 +330,8 @@ diff --git a/src/api/eqpt/measurementPlan/task.ts b/src/api/eqpt/measurementPlan/task.ts new file mode 100644 index 0000000..579609c --- /dev/null +++ b/src/api/eqpt/measurementPlan/task.ts @@ -0,0 +1,36 @@ +/** + * r任务单管理接口 + */ +import request from '@/api/index' +// 分页列表 +export function getListPage(data: object) { + return request({ + url: '/business/order/listPage', + method: 'post', + data, + }) +} +// 新建 +export function addTask(data: object) { + return request({ + url: '/business/order/add', + method: 'post', + data, + }) +} +// 更新 +export function updateTask(data: object) { + return request({ + url: '/business/order/update', + method: 'post', + data, + }) +} +// 详情 +export function detailTask(data: object) { + return request({ + url: '/business/order/detail', + method: 'post', + data, + }) +} diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index 32921cd..b8d1ab0 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -330,8 +330,8 @@ diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index c8b6c8b..42e4938 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -4,14 +4,16 @@ import { ElLoading, ElMessage, ElMessageBox } from 'element-plus' import dayjs from 'dayjs' import tableList from './tableList.vue' +import { addTask, detailTask, updateTask } from '@/api/eqpt/measurementPlan/task' import { getDictByCode } from '@/api/system/dict' import useUserStore from '@/store/modules/user' +import { getUserDept } from '@/api/system/user' const $route = useRoute() const $router = useRouter() const userStore = useUserStore() const ruleFormRef = ref() // from组件 const statusName = $route.query.statusName as string -const title = ref('') +const tableRef = ref() // 显示标题 const textMap: { [key: string]: string } = { update: '编辑', @@ -21,36 +23,117 @@ // 对话框类型:create,update const dialogStatus = ref('create') const ruleForm = ref({ + createTime: '', + createUserId: '', + createUserName: '', + customerAddress: '', + customerId: '', + customerName: '', + customerPhone: '', + customerSampleInfoList: [], + deliverer: '', + delivererId: '', + delivererTel: '', + id: '', + isUrgent: '', + maintainMajor: '', + measureCompany: '', + orderNo: '', + planDeliverTime: '', + receiveIllustrate: '', + receiveStatus: '', + requireOverTime: '', + undertakeTime: '', + undertakerId: '', + undertakerName: '', + updateTime: '', + }) // 表单 +const checkPhone = (rule: any, value: any, callback: any) => { + if (value === '') { + callback(new Error('手机号不能为空')) + } + else if (!(/^1[3456789]\d{9}$/.test(value))) { + callback(new Error('请输入正确手机号')) + } + else { + callback() + } +} const rules = ref({ - fileName: [{ required: true, message: '名称必填', trigger: 'blur' }], + deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], + customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], + planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], + requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], + isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], + measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { dialogStatus.value = $route.params.type as string ruleFormRef.value?.resetFields() if ($route.params.type === 'create') { - // ruleForm.value.createTime = dayjs().format('YYYY-MM-DD HH:mm:ss') // 创建时间 + ruleForm.value.createTime = dayjs().format('YYYY-MM-DD HH:mm:ss') // 创建时间 + ruleForm.value.createUserId = userStore.id + ruleForm.value.createUserName = userStore.name + // ruleForm.value.createDeptId = userStore.deptId + // ruleForm.value.createDeptName = userStore.deptName + // 获取当前用户所在单位 + getUserDept().then((res) => { + console.log(res.data, '用户所在单位') + // fullName + ruleForm.value.customerId = res.data.id + ruleForm.value.customerName = res.data.fullName + }) } else { ruleForm.value = JSON.parse($route.query.row as string) - // getInfoDetail({ equipmentId: $route.query.id as string }).then(res => { - // ruleForm.value = res.data - // }) + detailTask({ id: ruleForm.value.id }).then((res) => { + ruleForm.value = res.data.data + console.log(ruleForm.value, 'rule') + }) } } onMounted(() => { initDialog() }) +// 获取是否加急下拉列表 +const isUrgentList = ref<{ id: string; value: string; name: string }[]>() +const fetchListData = () => { + getDictByCode('eqptisUrgent').then((res) => { + isUrgentList.value = res.data + }) +} +fetchListData() // 关闭弹窗 const close = () => { $router.back() } +// 新增 +const add = () => { + ruleForm.value.customerSampleInfoList = tableRef.value.list + addTask(ruleForm.value).then((res) => { + ElMessage.success('新增成功') + close() + }) +} +// 编辑 +const update = () => { + ruleForm.value.customerSampleInfoList = tableRef.value.list + updateTask(ruleForm.value).then((res) => { + ElMessage.success('修改成功') + close() + }) +} // 保存 const saveForm = async (formEl: FormInstance | undefined) => { if (!formEl) { return } await formEl.validate((valid, fields) => { - if (valid) { + if (valid && tableRef.value.checkCertificateList()) { ElMessageBox.confirm( '确认保存吗?', '提示', @@ -60,38 +143,16 @@ type: 'warning', }, ).then((res) => { - ruleForm.value.attachments = tableRef.value.list - ruleForm.value.technicalTargetList = technologyRef.value.list - editInfo(ruleForm.value).then((res) => { - console.log(res.data, '123') - ElMessage.success('保存成功') - submitId.value = res.data - }) + if (dialogStatus.value === 'create') { + add() + } + else { + update() + } }) } }) } -// 提交 -const submitForm = () => { - if (!submitId.value) { - ElMessage.warning('请先保存') - return false - } - ElMessageBox.confirm( - '确认提交吗?', - '提示', - { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }, - ).then((res) => { - submitInfo({ id: submitId.value, formId: SCHEDULE.DEVICE_INFO_APPROVAL }).then((res) => { - ElMessage.success('已提交') - close() - }) - }) -} // 取消 const resetForm = (formEl: FormInstance | undefined) => { formEl?.resetFields() @@ -104,7 +165,7 @@ - + - + - + - + - - + + - - + + - - + + - - + + - - + + + - - + + + - - + + + + + - - + + - - + + - - + + - - + + + - + diff --git a/src/api/eqpt/measurementPlan/task.ts b/src/api/eqpt/measurementPlan/task.ts new file mode 100644 index 0000000..579609c --- /dev/null +++ b/src/api/eqpt/measurementPlan/task.ts @@ -0,0 +1,36 @@ +/** + * r任务单管理接口 + */ +import request from '@/api/index' +// 分页列表 +export function getListPage(data: object) { + return request({ + url: '/business/order/listPage', + method: 'post', + data, + }) +} +// 新建 +export function addTask(data: object) { + return request({ + url: '/business/order/add', + method: 'post', + data, + }) +} +// 更新 +export function updateTask(data: object) { + return request({ + url: '/business/order/update', + method: 'post', + data, + }) +} +// 详情 +export function detailTask(data: object) { + return request({ + url: '/business/order/detail', + method: 'post', + data, + }) +} diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index 32921cd..b8d1ab0 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -330,8 +330,8 @@ diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index c8b6c8b..42e4938 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -4,14 +4,16 @@ import { ElLoading, ElMessage, ElMessageBox } from 'element-plus' import dayjs from 'dayjs' import tableList from './tableList.vue' +import { addTask, detailTask, updateTask } from '@/api/eqpt/measurementPlan/task' import { getDictByCode } from '@/api/system/dict' import useUserStore from '@/store/modules/user' +import { getUserDept } from '@/api/system/user' const $route = useRoute() const $router = useRouter() const userStore = useUserStore() const ruleFormRef = ref() // from组件 const statusName = $route.query.statusName as string -const title = ref('') +const tableRef = ref() // 显示标题 const textMap: { [key: string]: string } = { update: '编辑', @@ -21,36 +23,117 @@ // 对话框类型:create,update const dialogStatus = ref('create') const ruleForm = ref({ + createTime: '', + createUserId: '', + createUserName: '', + customerAddress: '', + customerId: '', + customerName: '', + customerPhone: '', + customerSampleInfoList: [], + deliverer: '', + delivererId: '', + delivererTel: '', + id: '', + isUrgent: '', + maintainMajor: '', + measureCompany: '', + orderNo: '', + planDeliverTime: '', + receiveIllustrate: '', + receiveStatus: '', + requireOverTime: '', + undertakeTime: '', + undertakerId: '', + undertakerName: '', + updateTime: '', + }) // 表单 +const checkPhone = (rule: any, value: any, callback: any) => { + if (value === '') { + callback(new Error('手机号不能为空')) + } + else if (!(/^1[3456789]\d{9}$/.test(value))) { + callback(new Error('请输入正确手机号')) + } + else { + callback() + } +} const rules = ref({ - fileName: [{ required: true, message: '名称必填', trigger: 'blur' }], + deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], + customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], + planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], + requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], + isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], + measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { dialogStatus.value = $route.params.type as string ruleFormRef.value?.resetFields() if ($route.params.type === 'create') { - // ruleForm.value.createTime = dayjs().format('YYYY-MM-DD HH:mm:ss') // 创建时间 + ruleForm.value.createTime = dayjs().format('YYYY-MM-DD HH:mm:ss') // 创建时间 + ruleForm.value.createUserId = userStore.id + ruleForm.value.createUserName = userStore.name + // ruleForm.value.createDeptId = userStore.deptId + // ruleForm.value.createDeptName = userStore.deptName + // 获取当前用户所在单位 + getUserDept().then((res) => { + console.log(res.data, '用户所在单位') + // fullName + ruleForm.value.customerId = res.data.id + ruleForm.value.customerName = res.data.fullName + }) } else { ruleForm.value = JSON.parse($route.query.row as string) - // getInfoDetail({ equipmentId: $route.query.id as string }).then(res => { - // ruleForm.value = res.data - // }) + detailTask({ id: ruleForm.value.id }).then((res) => { + ruleForm.value = res.data.data + console.log(ruleForm.value, 'rule') + }) } } onMounted(() => { initDialog() }) +// 获取是否加急下拉列表 +const isUrgentList = ref<{ id: string; value: string; name: string }[]>() +const fetchListData = () => { + getDictByCode('eqptisUrgent').then((res) => { + isUrgentList.value = res.data + }) +} +fetchListData() // 关闭弹窗 const close = () => { $router.back() } +// 新增 +const add = () => { + ruleForm.value.customerSampleInfoList = tableRef.value.list + addTask(ruleForm.value).then((res) => { + ElMessage.success('新增成功') + close() + }) +} +// 编辑 +const update = () => { + ruleForm.value.customerSampleInfoList = tableRef.value.list + updateTask(ruleForm.value).then((res) => { + ElMessage.success('修改成功') + close() + }) +} // 保存 const saveForm = async (formEl: FormInstance | undefined) => { if (!formEl) { return } await formEl.validate((valid, fields) => { - if (valid) { + if (valid && tableRef.value.checkCertificateList()) { ElMessageBox.confirm( '确认保存吗?', '提示', @@ -60,38 +143,16 @@ type: 'warning', }, ).then((res) => { - ruleForm.value.attachments = tableRef.value.list - ruleForm.value.technicalTargetList = technologyRef.value.list - editInfo(ruleForm.value).then((res) => { - console.log(res.data, '123') - ElMessage.success('保存成功') - submitId.value = res.data - }) + if (dialogStatus.value === 'create') { + add() + } + else { + update() + } }) } }) } -// 提交 -const submitForm = () => { - if (!submitId.value) { - ElMessage.warning('请先保存') - return false - } - ElMessageBox.confirm( - '确认提交吗?', - '提示', - { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }, - ).then((res) => { - submitInfo({ id: submitId.value, formId: SCHEDULE.DEVICE_INFO_APPROVAL }).then((res) => { - ElMessage.success('已提交') - close() - }) - }) -} // 取消 const resetForm = (formEl: FormInstance | undefined) => { formEl?.resetFields() @@ -104,7 +165,7 @@ - + - + - + - + - - + + - - + + - - + + - - + + - - + + + - - + + + - - + + + + + - - + + - - + + - - + + - - + + + - + diff --git a/src/views/tested/MeasurementPlan/task/components/tableList.vue b/src/views/tested/MeasurementPlan/task/components/tableList.vue index 5cdcd4b..55295ab 100644 --- a/src/views/tested/MeasurementPlan/task/components/tableList.vue +++ b/src/views/tested/MeasurementPlan/task/components/tableList.vue @@ -1,6 +1,9 @@