wenhongquan 3 жил өмнө
parent
commit
54c5b51db1

+ 7 - 0
src/router/index.js

@@ -197,6 +197,13 @@ export const constantRoutes = [{
                 meta: { title: "工单", icon: "user" },
             },
             {
+                path: "task/disposal",
+                component: () =>
+                    import ("@/views/mb/task/disposal/index"),
+                name: "mbtaskdisposal",
+                meta: { title: "工单", icon: "user" },
+            },
+            {
                 path: "task/detail/:id",
                 component: () =>
                     import ("@/views/mb/task/detail/index"),

+ 1 - 0
src/views/mb/task/detail/index.vue

@@ -467,6 +467,7 @@ onMounted(() => {
       } else {
          templist[log.taskStatus+""] = log;
       }
+
     }
     var lists = [];
     for (var i in templist) {

+ 203 - 0
src/views/mb/task/disposal/index.vue

@@ -0,0 +1,203 @@
+<template>
+  <div>
+    <van-nav-bar
+      title="工单新增"
+      left-text="返回"
+      left-arrow
+      @click-left="onClickLeft"
+    />
+    <div class="listcontent" :style="`height:${bodyheight}px`">
+      <van-form @submit="onSubmit">
+        <van-cell-group>
+
+          <van-field
+            v-model="czobj.qsdes"
+            name="权属确认"
+            label="权属确认"
+            placeholder="请输入权属确认(现场勘查)"
+          />
+          <van-field
+            v-model="taskinfo.taskAddr"
+            name="详细地址"
+            label="详细地址"
+            placeholder="详细地址"
+          >
+            <template #button>
+              <van-button
+                size="small"
+                type="primary"
+                icon="search"
+                @click="searchaddr"
+              ></van-button>
+            </template>
+          </van-field>
+          <div style="padding-top: 10px">
+            <MapSelect ref="mapSelect" v-model:formv="formlocation"></MapSelect>
+          </div>
+        </van-cell-group>
+
+        <div style="margin: 16px">
+          <van-button round block type="primary" native-type="submit">
+            提交
+          </van-button>
+        </div>
+      </van-form>
+    </div>
+  </div>
+</template>
+
+<script setup>
+import { defineComponent, ref, onMounted, watch } from "vue";
+import { cloneDeep } from "lodash";
+import { listDept, getDept } from "@/api/system/dept";
+import ImagePreview from "@/components/ImagePreview";
+import { useDict } from "@/utils/dict";
+import { useRoute } from "vue-router";
+import MapSelect from "@/components/MapSelect";
+import moment from "moment";
+import {
+  listTask,
+  getTask,
+  delTask,
+  addTask,
+  updateTask,
+  distributedTask,
+  closeTask,
+  czTask,
+  gzTask,
+  hcTask,
+  ddTask
+} from "@/api/system/task";
+import {
+  changeUserStatus,
+  listUser,
+  resetUserPwd,
+  delUser,
+  getUser,
+  updateUser,
+  addUser,
+} from "@/api/system/user";
+
+import { Toast } from "vant";
+import router from "../../../../router";
+
+const route = useRoute();
+
+
+const czobj = ref({
+  qsdes: "",
+  images: [],
+  gzldata: [],
+  clsbdata: [],
+  hcdata: [],
+});
+
+var task = localStorage.getItem("currenttask");
+try {
+  if (task) {
+    task = JSON.parse(task);
+    if (task.taskId != Number(route.query.id)) {
+      Toast.fail("未查到任务");
+      router.back();
+    }
+    var logs = (task.tblTaskLogList ?? []).filter(i => i.taskStatus == 2);
+    if (Array.isArray(logs) && logs.length > 0) {
+      var log = JSON.parse(logs[0].logDes);
+      czobj.value = log;
+    }
+  } else {
+    Toast.fail("未查到任务");
+    router.back();
+  }
+
+} catch (E) {
+
+}
+
+
+
+
+
+const bodyheight = ref(0);
+
+bodyheight.value = document.body.clientHeight - 48;
+
+
+const searchaddr = () => {
+  if (taskinfo.value.taskAddr) {
+    mapSelect.value.searchaddr(taskinfo.value.taskAddr);
+  } else {
+    Toast("请输入地址");
+  }
+};
+
+const taskinfo = ref({
+  taskId:Number(route.query.id),
+  taskAddr: task.taskAddr,
+  taskLocation: task.taskLocation,
+  taskArea:task.taskArea,
+});
+
+const mapSelect = ref(null);
+const formlocation = ref({ addr: "", locations: "" });
+watch(
+  () => formlocation.value.addr,
+  () => {
+    taskinfo.value.taskAddr = formlocation.value.addr;
+
+  }
+);
+watch(
+  () => formlocation.value.locations,
+  () => {
+    taskinfo.value.taskLocation = formlocation.value.locations;
+    if (formlocation.value.locations != "") {
+      mapSelect.value.getlocationaddr(formlocation.value.locations, (data) => {
+         var qu = data.regeocode.addressComponent.district;
+            if (qu) {
+              for (var i in sys_area.value) {
+                if (sys_area.value[i].label == qu) {
+                  taskinfo.value.taskArea = sys_area.value[i].value
+                }
+              }
+            }
+      })
+    }
+
+  }
+);
+
+
+const onSubmit = async () => {
+  ddTask({
+    taskId: Number(route.query.id),
+    taskStatus: 2,
+    logDes: JSON.stringify(czobj.value)
+  }).then( async res =>  {
+    await updateTask(taskinfo.value);
+    Toast.success("成功");
+    router.back();
+  })
+};
+
+const onClickLeft = () => {
+  router.back();
+};
+onMounted(() => {
+   formlocation.value.addr = taskinfo.value.taskAddr;
+  formlocation.value.locations = taskinfo.value.taskLocation;
+
+})
+</script>
+
+<style lang="scss">
+body {
+  position: fixed;
+  width: 100%;
+  top: -1px;
+}
+.listcontent {
+  overflow-y: auto;
+  padding: 10px;
+}
+</style>

+ 13 - 2
src/views/mb/task/index.vue

@@ -86,10 +86,16 @@
                          <div style="text-align:right">
                             <van-button type="primary" size="small" @click.stop="daoda(item)">到达现场</van-button>
                           </div>
-
                         </van-col>
-
                     </van-row>
+                     <van-row v-if="item.status == 2 && ((item.tblTaskLogList??[]).filter(i=>i.taskStatus==-1).length>0)">
+                        <van-col span="24">
+                         <div style="text-align:right">
+                            <van-button type="primary" size="small" @click.stop="czfk(item)">处置反馈</van-button>
+                          </div>
+                        </van-col>
+                    </van-row>
+
                   </div>
                 </div>
               </div>
@@ -120,6 +126,7 @@ const loading = ref(false);
 const finished = ref(false);
 const refreshing = ref(false);
 
+
 const { task_status, task_event_category, task_event_type,task_type } = useDict(
   "task_status",
   "task_event_category",
@@ -202,6 +209,10 @@ const daoda = (item) => {
     onRefresh();
   })
 }
+const czfk = (item) => {
+  localStorage.setItem("currenttask", JSON.stringify(item));
+  router.push(`/mb/task/disposal?id=${item.taskId}`)
+}
 
 </script>
 

+ 7 - 0
src/views/task/detail/index.vue

@@ -1004,6 +1004,13 @@ onMounted(() => {
     }
     taskinfo.value = res.data;
     taskinfo.value.tblTaskLogList = lists;
+
+    var logs = (taskinfo.value.tblTaskLogList ?? []).filter(i => i.taskStatus == 2);
+
+    if (Array.isArray(logs) && logs.length > 0) {
+      var log = JSON.parse(logs[0].logDes);
+      czobj.value = log;
+    }
   });
 });