|
@@ -123,11 +123,140 @@
|
|
|
:placeholder="false"
|
|
|
:safeAreaInsetBottom="false"
|
|
|
>
|
|
|
- <view class="warning-btn">作废</view>
|
|
|
- <view class="def-btn">处理</view>
|
|
|
- <view class="def-btn">指派</view>
|
|
|
- <view class="def-btn">受理</view>
|
|
|
+ <template v-if="state.orderInfo.rewrite">
|
|
|
+ <view class="def-btn"
|
|
|
+ @click="state.showDisableModal = true">
|
|
|
+ 补充材料
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <view
|
|
|
+ class="warning-btn"
|
|
|
+ v-if="[WorkOrderStat.UN_HANDLE.value].includes(state.orderInfo.status )"
|
|
|
+ @click="state.showDisableModal=true"
|
|
|
+ >
|
|
|
+ 作废
|
|
|
+ </view>
|
|
|
+ <view
|
|
|
+ class="def-btn"
|
|
|
+ v-if="[WorkOrderStat.IN_HANDLE.value].includes(state.orderInfo.status )"
|
|
|
+ @click="state.handleForm = true"
|
|
|
+ >
|
|
|
+ 处理
|
|
|
+ </view>
|
|
|
+ <view
|
|
|
+ class="def-btn"
|
|
|
+ v-if="[WorkOrderStat.UN_HANDLE.value,WorkOrderStat.IN_HANDLE.value].includes(state.orderInfo.status )"
|
|
|
+ >
|
|
|
+ 指派
|
|
|
+ </view>
|
|
|
+ <view
|
|
|
+ class="def-btn"
|
|
|
+ v-if="[WorkOrderStat.UN_HANDLE.value].includes(state.orderInfo.status )"
|
|
|
+ @click="state.showAcceptModal=true"
|
|
|
+ >
|
|
|
+ 受理
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
</up-tabbar>
|
|
|
+ <up-modal
|
|
|
+ :show="state.showDisableModal"
|
|
|
+ title="确认作废"
|
|
|
+ :closeOnClickOverlay="true"
|
|
|
+ :showCancelButton="true"
|
|
|
+ @close="state.showDisableModal = false"
|
|
|
+ @cancel="state.showDisableModal = false"
|
|
|
+ @confirm="onConfirmDisable"
|
|
|
+ >
|
|
|
+ <view class="modal-content">
|
|
|
+ 确定作废这个工单?
|
|
|
+ </view>
|
|
|
+ </up-modal>
|
|
|
+ <up-modal
|
|
|
+ :show="state.showAcceptModal"
|
|
|
+ title="确认受理"
|
|
|
+ :closeOnClickOverlay="true"
|
|
|
+ :showCancelButton="true"
|
|
|
+ @close="state.showAcceptModal = false"
|
|
|
+ @cancel="state.showAcceptModal = false"
|
|
|
+ @confirm="onConfirmAccept"
|
|
|
+ >
|
|
|
+ <view class="modal-content">
|
|
|
+ 确定受理这个工单?
|
|
|
+ </view>
|
|
|
+ </up-modal>
|
|
|
+ <up-action-sheet
|
|
|
+ :show="state.handleForm"
|
|
|
+ @close="state.handleForm = false"
|
|
|
+ title="报废设备"
|
|
|
+ :round="10"
|
|
|
+ >
|
|
|
+ <view class="action-content common-form">
|
|
|
+ <up-form
|
|
|
+ labelPosition="left"
|
|
|
+ :model="state.model"
|
|
|
+ :rules="state.rules"
|
|
|
+ ref="formRef"
|
|
|
+ labelWidth="120"
|
|
|
+ >
|
|
|
+ <up-form-item
|
|
|
+ label="工单名称"
|
|
|
+ borderBottom
|
|
|
+ :required="true"
|
|
|
+ >
|
|
|
+ <up-input
|
|
|
+ :modelValue="state.orderInfo.name"
|
|
|
+ border="none"
|
|
|
+ disabled
|
|
|
+ ></up-input>
|
|
|
+ </up-form-item>
|
|
|
+ <up-form-item
|
|
|
+ label="产生原因"
|
|
|
+ borderBottom
|
|
|
+ >
|
|
|
+ <up-input
|
|
|
+ v-model="state.model.order.reason"
|
|
|
+ border="none"
|
|
|
+ ></up-input>
|
|
|
+ </up-form-item>
|
|
|
+ <up-form-item
|
|
|
+ label="解决方案"
|
|
|
+ borderBottom
|
|
|
+ >
|
|
|
+ <up-input
|
|
|
+ v-model="state.model.order.solution"
|
|
|
+ border="none"
|
|
|
+ ></up-input>
|
|
|
+ </up-form-item>
|
|
|
+ <up-form-item
|
|
|
+ label="费用/材料"
|
|
|
+ borderBottom
|
|
|
+ >
|
|
|
+ <up-input
|
|
|
+ v-model="state.model.order.consumables"
|
|
|
+ border="none"
|
|
|
+ ></up-input>
|
|
|
+ </up-form-item>
|
|
|
+
|
|
|
+ <up-form-item
|
|
|
+ label="是否已解决"
|
|
|
+ borderBottom
|
|
|
+ >
|
|
|
+ <up-switch v-model="state.model.order.isSolve"></up-switch>
|
|
|
+ </up-form-item>
|
|
|
+ <up-form-item
|
|
|
+ v-if="!state.model.order.isSolve"
|
|
|
+ label="是否补充材料"
|
|
|
+ borderBottom
|
|
|
+ >
|
|
|
+ <up-switch v-model="state.model.order.rewrite"></up-switch>
|
|
|
+ </up-form-item>
|
|
|
+
|
|
|
+ <up-button @click="submit" style="margin-top: 20rpx;">提交</up-button>
|
|
|
+ </up-form>
|
|
|
+ </view>
|
|
|
+ </up-action-sheet>
|
|
|
+ <up-toast ref="uToastRef"></up-toast>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
@@ -139,24 +268,38 @@ import LabelText from "@/components/labeltext/index.vue";
|
|
|
import Steps from "@/components/steps/index.vue";
|
|
|
import {onMounted, reactive, ref} from 'vue';
|
|
|
import {onLoad} from "@dcloudio/uni-app";
|
|
|
-import {getWorkOrderDetail, getWorkOrderSteps} from "@/api/workorder.js";
|
|
|
+import {getWorkOrderDetail, getWorkOrderSteps, handleWorkOrder, scrapWorkOrder} from "@/api/workorder.js";
|
|
|
import {valueToConst} from "@/common/consts/CommonConst.js";
|
|
|
-import {WorkOrderLevel, WorkOrderTypes} from "@/common/consts/WorkOrderConst.js";
|
|
|
+import {WorkOrderLevel, WorkOrderStat, WorkOrderTypes} from "@/common/consts/WorkOrderConst.js";
|
|
|
import {formatTxt, getImgs, getStepInfo} from "@/util/index.js";
|
|
|
import ImagesH from "@/components/imagesh/index.vue";
|
|
|
|
|
|
const order = ref('')
|
|
|
const state = reactive({
|
|
|
+ showDisableModal: false,
|
|
|
+ showAcceptModal: false,
|
|
|
+ handleForm: false,
|
|
|
orderInfo: {
|
|
|
problemImg: [],
|
|
|
solveImg: []
|
|
|
},
|
|
|
+ model: {
|
|
|
+ order: {
|
|
|
+ isSolve: true,
|
|
|
+ rewrite: false,
|
|
|
+ }
|
|
|
+ },
|
|
|
steps: []
|
|
|
})
|
|
|
+const uToastRef = ref(null)
|
|
|
onLoad((option) => {
|
|
|
order.value = option.id
|
|
|
});
|
|
|
onMounted(() => {
|
|
|
+ refresh()
|
|
|
+})
|
|
|
+
|
|
|
+const refresh = () => {
|
|
|
getWorkOrderDetail(order.value).then((data) => {
|
|
|
state.orderInfo = data
|
|
|
state.orderInfo.statusMsg = getDeviceStatus(data)
|
|
@@ -167,7 +310,7 @@ onMounted(() => {
|
|
|
getWorkOrderSteps(order.value).then((data) => {
|
|
|
state.steps = data
|
|
|
})
|
|
|
-})
|
|
|
+}
|
|
|
const getDeviceStatus = (dataDetail) => {
|
|
|
let statusMsg = []
|
|
|
if (dataDetail.status === 1 && isLessThanNow(dataDetail.estimatedStartTime)) {
|
|
@@ -184,7 +327,33 @@ const isLessThanNow = (date) => {
|
|
|
// 小于0则str1时间小,大于0则str1时间大
|
|
|
return str1 - str2 < 0
|
|
|
}
|
|
|
-
|
|
|
+const onConfirmDisable = () => {
|
|
|
+ scrapWorkOrder(order.value).then(() => {
|
|
|
+ state.handleForm = false;
|
|
|
+ uToastRef.value.show({
|
|
|
+ type: 'default',
|
|
|
+ message: "操作成功",
|
|
|
+ complete() {
|
|
|
+ uni.$emit('refreshData', {refresh: true});
|
|
|
+ uni.navigateBack({
|
|
|
+ delta: 1
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
+}
|
|
|
+const onConfirmAccept = () => {
|
|
|
+ handleWorkOrder(order.value).then(() => {
|
|
|
+ state.showAcceptModal = false;
|
|
|
+ uToastRef.value.show({
|
|
|
+ type: 'default',
|
|
|
+ message: "操作成功",
|
|
|
+ complete() {
|
|
|
+ refresh()
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
|
|
@@ -250,5 +419,9 @@ const isLessThanNow = (date) => {
|
|
|
background-color: $uni-color-primary;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ .action-content {
|
|
|
+ padding: 0 $uni-pop-padding;
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|