|
@@ -1,151 +1,28 @@
|
|
|
<template>
|
|
|
<el-tabs v-model="activeName" @tab-change="onTabChange">
|
|
|
- <el-tab-pane label="工单广场" name="plat">
|
|
|
- <div class="layout_container" style="height: 100vh">
|
|
|
- <div class="layout_main layout_el-table">
|
|
|
- <el-table :data="allPlatOrders">
|
|
|
- <el-table-column prop="id" label="工单编号"></el-table-column>
|
|
|
- <el-table-column label="需求类型">
|
|
|
- <template #default="{row}">
|
|
|
- {{ filterType(row.type) }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="content" label="工单说明"></el-table-column>
|
|
|
- <el-table-column label="主要用户">
|
|
|
- <template #default="{row}">
|
|
|
- {{ filterBelong(row.belong) }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="deptName" label="提交科室"></el-table-column>
|
|
|
- <el-table-column prop="creatorName" label="提交人"></el-table-column>
|
|
|
- <el-table-column prop="createtime" label="创建时间"></el-table-column>
|
|
|
- <el-table-column label="状态">
|
|
|
- <template #default="{row}">
|
|
|
- {{ filterState(row.state) }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="我已接取">
|
|
|
- <template #default="{row}">
|
|
|
- {{row.meTaken === 0 ? '否' : '是'}}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column >
|
|
|
- <template #header>
|
|
|
- 操作
|
|
|
- <el-button
|
|
|
- circle
|
|
|
- icon="refresh"
|
|
|
- @click="refreshPlatOrder"
|
|
|
- ></el-button>
|
|
|
- </template>
|
|
|
- <template #default="{row}">
|
|
|
- <el-button
|
|
|
- size="default"
|
|
|
- type="primary"
|
|
|
- plain
|
|
|
- @click="takeOrder(row)"
|
|
|
- :disabled="row.meTaken > 0"
|
|
|
- >接取工单</el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <el-tab-pane label="工单广场" name="plat" style="height: 88vh">
|
|
|
+ <OrderPlat ref="plat" />
|
|
|
</el-tab-pane>
|
|
|
- <el-tab-pane label="已接工单" name="mine">
|
|
|
- <div class="layout_container" style="height: 100vh">
|
|
|
- <div class="layout_main layout_el-table">
|
|
|
- <el-table :data="myTakenOrders">
|
|
|
- <el-table-column prop="id" label="任务编号"></el-table-column>
|
|
|
- <el-table-column prop="parentId" label="工单编号"></el-table-column>
|
|
|
- <el-table-column label="工单进度">
|
|
|
- <template #default="{row}">
|
|
|
- <el-select
|
|
|
- v-model="row.progress"
|
|
|
- :disabled="row.progress === 'PROCESS_FINISHED' "
|
|
|
- style="width: 120px"
|
|
|
- @change="handleProgressChange(row)"
|
|
|
- >
|
|
|
- <el-option value="NOT_STARTED" label="未开始"/>
|
|
|
- <el-option value="IN_PROCESS" label="进行中"/>
|
|
|
- <el-option value="PROCESS_FINISHED" label="已完成"/>
|
|
|
- </el-select>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="content" label="工作内容"></el-table-column>
|
|
|
- <el-table-column >
|
|
|
- <template #header>
|
|
|
- 接单时间
|
|
|
- <el-button
|
|
|
- circle
|
|
|
- icon="refresh"
|
|
|
- @click="refreshMyTakenOrders"
|
|
|
- ></el-button>
|
|
|
- </template>
|
|
|
- <template #default="{row}">
|
|
|
- {{row.createtime}}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <el-tab-pane label="已接工单" name="mine" style="height: 88vh">
|
|
|
+ <OrderTaken ref="taken"/>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import {filterBelong, filterState, filterType} from "@/views/utilities/work-order/work-order-filter.js";
|
|
|
-import {getAllOrders, takeWorkOrder, getMyTakenOrders, updateOrderProgress} from "@/api/utilities/work-order.js";
|
|
|
-import {xcMessage} from "@/utils/xiaochan-element-plus";
|
|
|
-import {ElMessageBox} from "element-plus";
|
|
|
+import OrderPlat from "@/views/utilities/work-order/component/OrderPlat.vue";
|
|
|
+import OrderTaken from "@/views/utilities/work-order/component/OrderTaken.vue";
|
|
|
|
|
|
const activeName = ref("plat");
|
|
|
-const allPlatOrders = ref([])
|
|
|
-const myTakenOrders = ref([])
|
|
|
|
|
|
-function refreshPlatOrder() {
|
|
|
- getAllOrders().then(res => {
|
|
|
- allPlatOrders.value = res;
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
-function takeOrder(row) {
|
|
|
- ElMessageBox.prompt('请输入工作内容:', '接取工单', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- inputValue: null,
|
|
|
- inputPattern: /\S/,
|
|
|
- inputErrorMessage: '工作内容不能为空',
|
|
|
- }).then(({value}) => {
|
|
|
- row.expContent = value
|
|
|
- takeWorkOrder(row).then(res => {
|
|
|
- row.meTaken = 1
|
|
|
- xcMessage.success(res)
|
|
|
- })
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
-function refreshMyTakenOrders() {
|
|
|
- getMyTakenOrders().then(res => {
|
|
|
- myTakenOrders.value = res
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
-function handleProgressChange(row) {
|
|
|
- updateOrderProgress(row).then(res => {
|
|
|
- xcMessage.success(res)
|
|
|
- })
|
|
|
-}
|
|
|
+const plat = ref(null)
|
|
|
+const taken = ref(null)
|
|
|
|
|
|
function onTabChange(val) {
|
|
|
if (val === "plat") {
|
|
|
- refreshPlatOrder()
|
|
|
+ plat.value.refreshPlatOrder()
|
|
|
} else {
|
|
|
- refreshMyTakenOrders()
|
|
|
+ taken.value.refreshMyTakenOrders()
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-onMounted(() => {
|
|
|
- refreshPlatOrder()
|
|
|
-})
|
|
|
</script>
|