| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402 |
- <template>
- <view class="page fault">
- <scroll-view scroll-y="true" class="detail view">
- <view class="form-content">
- <uni-forms
- ref="faultFormRef"
- labelWidth="140px"
- :modelValue="maintain"
- :rules="maintainRules"
- >
- <!-- 设备 -->
- <uni-forms-item
- class="form-item"
- :label="$t('maintenanceWorkOrder.equipment')"
- name="deviceName"
- :required="false"
- >
- <uni-easyinput
- style="text-align: right"
- :inputBorder="false"
- :clearable="false"
- :styles="{ disableColor: '#fff' }"
- :placeholder="' '"
- :disabled="true"
- v-model="maintain.deviceName"
- />
- </uni-forms-item>
- <!-- 是否解决 -->
- <uni-forms-item
- class="form-item"
- :label="$t('workOrder.isSolved')"
- name="ifDeal"
- :required="false"
- >
- <uni-data-select
- :clear="false"
- :placeholder="' '"
- :disabled="true"
- v-model="maintain.ifDeal"
- :localdata="yesOrNoRange"
- >
- </uni-data-select>
- </uni-forms-item>
- <!-- 是否协助 -->
- <uni-forms-item
- class="form-item"
- :label="$t('workOrder.isHelp')"
- name="needHelp"
- :required="false"
- >
- <uni-data-select
- :clear="false"
- :placeholder="' '"
- :disabled="true"
- v-model="maintain.needHelp"
- :localdata="yesOrNoRange"
- >
- </uni-data-select>
- </uni-forms-item>
- <!-- 故障系统 -->
- <uni-forms-item
- class="form-item"
- :label="$t('fault.faultSystem')"
- name="failureSystem"
- :required="false"
- >
- <uni-easyinput
- style="text-align: right"
- :inputBorder="false"
- :clearable="false"
- :styles="{ disableColor: '#fff' }"
- v-model="maintain.failureSystem"
- :placeholder="' '"
- :disabled="true"
- />
- </uni-forms-item>
- <!-- 故障时间 -->
- <uni-forms-item
- class="form-item"
- :label="$t('fault.faultTime')"
- name="failureTime"
- :required="false"
- >
- <uni-datetime-picker
- type="datetime"
- :border="false"
- returnType="timestamp"
- :placeholder="' '"
- :disabled="true"
- :style="{
- color: maintain.failureTime ? '#333' : '#999',
- 'font-size': maintain.failureTime
- ? '14px !important'
- : 'inherit !important',
- }"
- :end="dateMax"
- v-model="maintain.failureTime"
- >
- </uni-datetime-picker>
- </uni-forms-item>
- <!-- 故障解决时间 是否解决为是,是否协助为否时需要填写-->
- <uni-forms-item
- class="form-item"
- :label="$t('fault.faultResolutionTime')"
- name="dealTime"
- :required="false"
- v-if="maintain.ifDeal"
- >
- <!-- :end="dateMax" -->
- <uni-datetime-picker
- type="datetime"
- :border="false"
- returnType="timestamp"
- :placeholder="' '"
- :disabled="true"
- :style="{
- color: maintain.dealTime ? '#333' : '#999',
- 'font-size': maintain.dealTime
- ? '14px !important'
- : 'inherit !important',
- }"
- :end="dateMax"
- v-model="maintain.dealTime"
- >
- </uni-datetime-picker>
- </uni-forms-item>
- <!-- 审批人 是否解决为否 时需要选择 -->
- <uni-forms-item
- class="form-item"
- :label="$t('workOrder.approver')"
- name="approvalId"
- :required="false"
- v-if="maintain.ifDeal == 0"
- >
- <uni-data-select
- :clear="false"
- :disabled="true"
- v-model="maintain.approvalId"
- :localdata="approvalList"
- :placeholder="' '"
- >
- </uni-data-select>
- </uni-forms-item>
- <!-- 是否停机 -->
- <uni-forms-item
- class="form-item"
- :label="$t('equipmentMaintenance.isStop')"
- name="ifStop"
- :required="false"
- >
- <uni-data-select
- :clear="false"
- :placeholder="' '"
- :disabled="true"
- v-model="maintain.ifStop"
- :localdata="yesOrNoRange"
- >
- </uni-data-select>
- </uni-forms-item>
- <!-- 图片 -->
- <uni-forms-item
- class="form-item"
- :label="$t('general.picture')"
- name="picList"
- :required="false"
- >
- <uni-file-picker
- file-mediatype="image"
- mode="grid"
- :auto-upload="false"
- :limit="1"
- :readonly="true"
- :imageStyles="{ border: false }"
- :value="maintain.picList"
- @select="upload"
- >
- <template #default>
- <view
- class="flex-col align-center justify-center"
- style="width: 60px; height: 60px; background-color: #f4f4f4"
- >
- <uni-icons type="plusempty" color="#ACACAC" size="12" />
- </view>
- </template>
- </uni-file-picker>
- </uni-forms-item>
- <!-- 故障影响 -->
- <uni-forms-item
- class="form-item"
- :label="$t('fault.faultImpact')"
- name="failureInfluence"
- :required="false"
- >
- <uni-easyinput
- style="text-align: right"
- :inputBorder="false"
- :clearable="false"
- :styles="{ disableColor: '#fff' }"
- v-model="maintain.failureInfluence"
- :placeholder="' '"
- :disabled="true"
- />
- </uni-forms-item>
- <!-- 解决办法 是否解决为是,是否协助为否时需要填写 -->
- <uni-forms-item
- class="form-item"
- :label="$t('fault.solution')"
- :required="false"
- name="solution"
- v-if="maintain.ifDeal"
- >
- <uni-easyinput
- style="text-align: right"
- type="textarea"
- :autoHeight="true"
- :inputBorder="false"
- :clearable="false"
- :styles="{ disableColor: '#fff' }"
- v-model="maintain.solution"
- :placeholder="' '"
- :disabled="true"
- />
- </uni-forms-item>
- <!-- 故障描述 -->
- <uni-forms-item
- class="form-item"
- :label="$t('fault.description')"
- :required="false"
- name="description"
- >
- <uni-easyinput
- style="text-align: right"
- type="textarea"
- :autoHeight="true"
- :inputBorder="false"
- :clearable="false"
- :styles="{ disableColor: '#fff' }"
- v-model="maintain.description"
- :placeholder="' '"
- :disabled="true"
- />
- </uni-forms-item>
- <!-- 备注 -->
- <uni-forms-item
- class="form-item"
- :label="$t('operation.remark')"
- :required="false"
- name="remark"
- >
- <uni-easyinput
- style="text-align: right"
- type="textarea"
- :autoHeight="true"
- :inputBorder="false"
- :clearable="false"
- :styles="{ disableColor: '#fff' }"
- v-model="maintain.remark"
- :placeholder="' '"
- :disabled="true"
- />
- </uni-forms-item>
- </uni-forms>
- </view>
- </scroll-view>
- </view>
- </template>
- <script setup>
- import { onLoad, onReady, onBackPress } from "@dcloudio/uni-app";
- import {
- reactive,
- ref,
- watch,
- computed,
- watchEffect,
- onMounted,
- onBeforeUnmount,
- nextTick,
- getCurrentInstance,
- } from "vue";
- import { getFaultDetail, getFailureApprovalList } from "@/api/fault.js";
- import dayjs from "dayjs";
- import { uploadFile } from "@/api";
- import { useDataDictStore } from "@/store/modules/dataDict";
- const { getDataDictList } = useDataDictStore();
- // 引用全局变量$t
- const { appContext } = getCurrentInstance();
- const t = appContext.config.globalProperties.$t;
- // 维修类型
- const typeRange = ref([
- {
- value: "in",
- text: t("maintenanceWorkOrder.maintenanceTypeIn"),
- },
- {
- value: "out",
- text: t("maintenanceWorkOrder.maintenanceTypeOut"),
- },
- ]);
- //
- const yesOrNoRange = ref([
- {
- value: 1,
- text: t("operation.yes"),
- },
- {
- value: 0,
- text: t("operation.no"),
- },
- ]);
- // 获取当前时间
- const now = dayjs().format("YYYY-MM-DD HH:mm:ss");
- const dateMax = ref(now);
- //故障详情
- const maintain = ref({
- deviceId: "",
- deviceName: "",
- picList: [], //用于上传照片 提交时删除
- });
- // 获取故障详情
- const getFaultDetailData = async (id) => {
- await getFaultDetail({
- id: id,
- })
- .then((res) => {
- console.log("getFaultDetailData", res.data);
- maintain.value = res.data;
- // ifDeal,needHelp, isStop从true/false转换为1/0
- maintain.value.ifDeal = maintain.value.ifDeal ? 1 : 0;
- maintain.value.needHelp = maintain.value.needHelp ? 1 : 0;
- maintain.value.isStop = maintain.value.isStop ? 1 : 0;
- maintain.value.picList = res.data.pic
- ? [
- {
- url: res.data.pic,
- },
- ]
- : [];
- // 如果存在审批人,则获取审批人信息
- if (data.approvalId) {
- getApprovalList();
- }
- })
- .catch((err) => {});
- };
- // 审批人列表
- const approvalList = ref([]);
- const getApprovalList = async () => {
- const res = await getFailureApprovalList();
- approvalList.value = res.data.map((item) => ({
- value: item.id,
- text: item.nickname,
- }));
- };
- // 上传图片
- const upload = async (event) => {
- for (const path of event.tempFilePaths) {
- maintain.value.pic = (await uploadFile(path)).data;
- }
- };
- onMounted(() => {
- // 监听子页面提交的事件
- console.log("onMounted");
- // uni.$on('multiple-devide-submit', (data) => {
- // console.log('接收到子页面数据:', data);
- // selectedDevices.value = data
- // onDeviceBomList()
- // });
- });
- onBeforeUnmount(() => {
- // 移除监听
- console.log("onBeforeUnmount");
- // uni.$off('multiple-devide-submit');
- });
- onLoad((option) => {
- console.log("onLoad", option);
- getFaultDetailData(option.id);
- });
- onReady(() => {
- // 设置自定义表单校验规则,必须在节点渲染完毕后执行
- // this.$refs.customForm.setRules(this.customRules)
- });
- onBackPress((options) => {
- // options.from 值为 'navigateBack' 时,表示返回是由 uni.navigateBack() 方法调用触发的
- // options.from 值为 'navigator' 时,表示返回是由导航栏返回按钮或物理返回键触发的
- console.log("返回触发来源:", options.from);
- });
- </script>
- <style lang="scss" scoped>
- @import "@/style/work-order-detail.scss";
- :deep(.is-disabled) {
- color: #333;
- }
- </style>
|