|
@@ -16,7 +16,16 @@
|
|
|
<transition name="el-zoom-in-top">
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8" v-show="!searchCol">
|
|
|
<el-form-item label="受理类型" prop="AcceptType">
|
|
|
- <el-select v-model="state.queryParams.AcceptType" placeholder="请选择受理类型" multiple clearable class="w100">
|
|
|
+ <el-select
|
|
|
+ v-model="state.queryParams.AcceptType"
|
|
|
+ placeholder="请选择受理类型"
|
|
|
+ multiple
|
|
|
+ clearable
|
|
|
+ class="w100"
|
|
|
+ collapse-tags
|
|
|
+ collapse-tags-tooltip
|
|
|
+ :max-collapse-tags="2"
|
|
|
+ >
|
|
|
<el-option v-for="item in state.acceptTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
@@ -25,7 +34,16 @@
|
|
|
<transition name="el-zoom-in-top">
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8" v-show="!searchCol">
|
|
|
<el-form-item label="来源渠道" prop="Channel">
|
|
|
- <el-select v-model="state.queryParams.Channel" placeholder="请选择来源渠道" multiple clearable class="w100">
|
|
|
+ <el-select
|
|
|
+ v-model="state.queryParams.Channel"
|
|
|
+ placeholder="请选择来源渠道"
|
|
|
+ multiple
|
|
|
+ clearable
|
|
|
+ class="w100"
|
|
|
+ collapse-tags
|
|
|
+ collapse-tags-tooltip
|
|
|
+ :max-collapse-tags="2"
|
|
|
+ >
|
|
|
<el-option v-for="item in state.channelOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
@@ -48,6 +66,9 @@
|
|
|
:load="load"
|
|
|
node-key="id"
|
|
|
check-strictly
|
|
|
+ collapse-tags
|
|
|
+ collapse-tags-tooltip
|
|
|
+ :max-collapse-tags="2"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -59,13 +80,16 @@
|
|
|
:options="state.orgsOptions"
|
|
|
filterable
|
|
|
:show-all-levels="false"
|
|
|
- :props="{ checkStrictly: true, value: 'id', label: 'orgName', emitPath: false, multiple: true }"
|
|
|
+ :props="{ checkStrictly: true, value: 'id', label: 'name', emitPath: false, multiple: true }"
|
|
|
placeholder="请选择所属部门"
|
|
|
clearable
|
|
|
class="w100"
|
|
|
v-model="state.queryParams.OrgCode"
|
|
|
ref="cascadeRef"
|
|
|
@change="getKnowledgeList"
|
|
|
+ collapse-tags
|
|
|
+ collapse-tags-tooltip
|
|
|
+ :max-collapse-tags="2"
|
|
|
>
|
|
|
</el-cascader>
|
|
|
</el-form-item>
|
|
@@ -105,7 +129,16 @@
|
|
|
<transition name="el-zoom-in-top">
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8" v-show="!searchCol">
|
|
|
<el-form-item label="紧急程度" prop="EmergencyLevel">
|
|
|
- <el-select v-model="state.queryParams.EmergencyLevel" placeholder="请选择受理类型" multiple clearable class="w100">
|
|
|
+ <el-select
|
|
|
+ v-model="state.queryParams.EmergencyLevel"
|
|
|
+ placeholder="请选择受理类型"
|
|
|
+ multiple
|
|
|
+ clearable
|
|
|
+ class="w100"
|
|
|
+ collapse-tags
|
|
|
+ collapse-tags-tooltip
|
|
|
+ :max-collapse-tags="2"
|
|
|
+ >
|
|
|
<el-option v-for="item in state.emergencyLevelOptions" :value="item.key" :key="item.key" :label="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
@@ -147,7 +180,16 @@
|
|
|
<transition name="el-zoom-in-top">
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8" v-show="!searchCol">
|
|
|
<el-form-item label="工单状态" prop="Status">
|
|
|
- <el-select v-model="state.queryParams.Status" placeholder="请选择工单状态" multiple clearable class="w100">
|
|
|
+ <el-select
|
|
|
+ v-model="state.queryParams.Status"
|
|
|
+ placeholder="请选择工单状态"
|
|
|
+ multiple
|
|
|
+ clearable
|
|
|
+ class="w100"
|
|
|
+ collapse-tags
|
|
|
+ collapse-tags-tooltip
|
|
|
+ :max-collapse-tags="2"
|
|
|
+ >
|
|
|
<el-option v-for="item in state.orderStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
@@ -173,19 +215,18 @@
|
|
|
<el-card shadow="never">
|
|
|
<!-- 功能按钮 -->
|
|
|
<div class="mb20">
|
|
|
- <el-button type="primary" @click="onAddWorkOrder" v-auth="'business:order:add'"> <SvgIcon name="ele-Plus" class="mr5" />新建工单 </el-button>
|
|
|
<el-button type="primary" @click="onCreateRepeatEvent" v-auth="'business:repeatEvent:add'">
|
|
|
<SvgIcon name="ele-Plus" class="mr5" /> 创建重复性事件
|
|
|
</el-button>
|
|
|
<el-button type="primary" @click="onExport" v-auth="'business:order:export'" :disabled="!multipleSelection.length">
|
|
|
<SvgIcon name="iconfont icon-daochu" class="mr5" />导出
|
|
|
</el-button>
|
|
|
- <el-button type="primary" @click="onObserve" v-auth="'business:order:observe'" :disabled="!multipleSelection.length">
|
|
|
- <SvgIcon name="ele-View" class="mr5" />设置观察件
|
|
|
- </el-button>
|
|
|
- <el-button type="primary" @click="onEnd" v-auth="'business:order:end'" :disabled="!multipleSelection.length">
|
|
|
- <SvgIcon name="ele-Stopwatch" class="mr5" />设置终结件
|
|
|
- </el-button>
|
|
|
+ <el-button type="primary" @click="onObserve" v-auth="'business:order:observe'" :disabled="!multipleSelection.length">
|
|
|
+ <SvgIcon name="ele-View" class="mr5" />设置观察件
|
|
|
+ </el-button>
|
|
|
+ <el-button type="primary" @click="onEnd" v-auth="'business:order:end'" :disabled="!multipleSelection.length">
|
|
|
+ <SvgIcon name="ele-Stopwatch" class="mr5" />设置终结件
|
|
|
+ </el-button>
|
|
|
</div>
|
|
|
<!-- 表格 -->
|
|
|
<el-table
|
|
@@ -243,14 +284,7 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column label="操作" width="80" fixed="right" align="center">
|
|
|
<template #default="{ row }">
|
|
|
- <el-button
|
|
|
- link
|
|
|
- type="success"
|
|
|
- @click="onOrderEdit(row)"
|
|
|
- title="编辑工单"
|
|
|
- v-if="row.canEdit"
|
|
|
- v-auth="'business:order:edit'"
|
|
|
- >
|
|
|
+ <el-button link type="success" @click="onOrderEdit(row)" title="编辑工单" v-if="row.canEdit" v-auth="'business:order:edit'">
|
|
|
修改
|
|
|
</el-button>
|
|
|
<el-button link type="primary" @click="onOrderDetail(row)" title="查看工单详情" v-auth="'business:order:detail'" v-else> 详情 </el-button>
|
|
@@ -270,23 +304,23 @@
|
|
|
</el-card>
|
|
|
<!-- 工单详情 -->
|
|
|
<order-detail ref="orderDetailRef" @updateList="queryList" />
|
|
|
- <!-- 编辑重复性事件 -->
|
|
|
- <repeat-event-edit ref="repeatEventEditRef" @updateList="queryList" />
|
|
|
+ <!-- 编辑重复性事件 -->
|
|
|
+ <repeat-event-edit ref="repeatEventEditRef" @updateList="queryList" />
|
|
|
</div>
|
|
|
</template>
|
|
|
<script setup lang="ts" name="order">
|
|
|
-import {defineAsyncComponent, onMounted, reactive, ref} from 'vue';
|
|
|
-import type {FormInstance} from 'element-plus';
|
|
|
-import {ElButton, ElMessage, ElMessageBox} from 'element-plus';
|
|
|
-import {throttle} from '/@/utils/tools';
|
|
|
-import {shortcuts} from '/@/utils/constants';
|
|
|
-import {auth} from '/@/utils/authFunction';
|
|
|
+import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
|
|
|
+import type { FormInstance } from 'element-plus';
|
|
|
+import { ElButton, ElMessage, ElMessageBox } from 'element-plus';
|
|
|
+import { throttle } from '/@/utils/tools';
|
|
|
+import { shortcuts } from '/@/utils/constants';
|
|
|
+import { auth } from '/@/utils/authFunction';
|
|
|
import other from '/@/utils/other';
|
|
|
-import {useRoute, useRouter} from 'vue-router';
|
|
|
-import {formatDate} from '/@/utils/formatTime';
|
|
|
-import {hotSpotType, listBaseData, orderList} from '/@/api/business/order';
|
|
|
-import {addObserve} from "/@/api/query/observe";
|
|
|
-import {addEnd} from "/@/api/query/end";
|
|
|
+import { useRoute, useRouter } from 'vue-router';
|
|
|
+import { formatDate } from '/@/utils/formatTime';
|
|
|
+import { hotSpotType, listBaseData, orderList } from '/@/api/business/order';
|
|
|
+import { addObserve } from '/@/api/query/observe';
|
|
|
+import { addEnd } from '/@/api/query/end';
|
|
|
|
|
|
// 引入组件
|
|
|
const OrderDetail = defineAsyncComponent(() => import('/@/views/business/order/components/Order-detail.vue')); // 工单详情
|
|
@@ -431,71 +465,61 @@ const onExport = () => {
|
|
|
console.log('导出');
|
|
|
};
|
|
|
// 设置终结件
|
|
|
-const onObserve = ()=>{
|
|
|
- const titles = multipleSelection.value.map((item: any) => item.title).join(',');
|
|
|
- const ids = multipleSelection.value.map((item: any) => {
|
|
|
- return {
|
|
|
- orderId: item.id,
|
|
|
- }
|
|
|
- })
|
|
|
- ElMessageBox.confirm(`确定要将【${titles}】设置观察件吗?`, '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning',
|
|
|
- draggable: true,
|
|
|
- autofocus: false,
|
|
|
- }).then(() => {
|
|
|
- addObserve({orderIds:ids}).then(() => {
|
|
|
- ElMessage.success('操作成功');
|
|
|
- queryList()
|
|
|
- })
|
|
|
- }).catch(() => {
|
|
|
-
|
|
|
- });
|
|
|
-}
|
|
|
+const onObserve = () => {
|
|
|
+ const titles = multipleSelection.value.map((item: any) => item.title).join(',');
|
|
|
+ const ids = multipleSelection.value.map((item: any) => {
|
|
|
+ return {
|
|
|
+ orderId: item.id,
|
|
|
+ };
|
|
|
+ });
|
|
|
+ ElMessageBox.confirm(`确定要将【${titles}】设置观察件吗?`, '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning',
|
|
|
+ draggable: true,
|
|
|
+ autofocus: false,
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ addObserve({ orderIds: ids }).then(() => {
|
|
|
+ ElMessage.success('操作成功');
|
|
|
+ queryList();
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
+};
|
|
|
// 设置终结件
|
|
|
-const onEnd = ()=>{
|
|
|
- const titles = multipleSelection.value.map((item: any) => item.title).join(',');
|
|
|
- const ids = multipleSelection.value.map((item: any) => {
|
|
|
- return {
|
|
|
- orderId: item.id,
|
|
|
- }
|
|
|
- })
|
|
|
- ElMessageBox.confirm(`确定要将【${titles}】设置终结件吗?`, '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning',
|
|
|
- draggable: true,
|
|
|
- autofocus: false,
|
|
|
- }).then(() => {
|
|
|
- addEnd({orderIds:ids}).then(() => {
|
|
|
- ElMessage.success('操作成功');
|
|
|
- queryList()
|
|
|
- })
|
|
|
- }).catch(() => {
|
|
|
-
|
|
|
- });
|
|
|
-}
|
|
|
+const onEnd = () => {
|
|
|
+ const titles = multipleSelection.value.map((item: any) => item.title).join(',');
|
|
|
+ const ids = multipleSelection.value.map((item: any) => {
|
|
|
+ return {
|
|
|
+ orderId: item.id,
|
|
|
+ };
|
|
|
+ });
|
|
|
+ ElMessageBox.confirm(`确定要将【${titles}】设置终结件吗?`, '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning',
|
|
|
+ draggable: true,
|
|
|
+ autofocus: false,
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ addEnd({ orderIds: ids }).then(() => {
|
|
|
+ ElMessage.success('操作成功');
|
|
|
+ queryList();
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
+};
|
|
|
// 查看详情
|
|
|
const orderDetailRef = ref<RefType>();
|
|
|
const onOrderDetail = (row: any) => {
|
|
|
- orderDetailRef.value.openDialog(row);
|
|
|
-};
|
|
|
-// 新增工单
|
|
|
-const onAddWorkOrder = () => {
|
|
|
- // 跳转到录入工单页面
|
|
|
- router.push({
|
|
|
- name: 'orderAccept',
|
|
|
- params: {
|
|
|
- tagsViewName: '工单受理',
|
|
|
- },
|
|
|
- });
|
|
|
+ orderDetailRef.value.openDialog(row);
|
|
|
};
|
|
|
// 创建重复性事件
|
|
|
const repeatEventEditRef = ref<RefType>();
|
|
|
-const onCreateRepeatEvent = ()=>{
|
|
|
- repeatEventEditRef.value.openDialog();
|
|
|
-}
|
|
|
+const onCreateRepeatEvent = () => {
|
|
|
+ repeatEventEditRef.value.openDialog();
|
|
|
+};
|
|
|
// 编辑工单
|
|
|
const onOrderEdit = (row: any) => {
|
|
|
router.push({
|