浏览代码

reactor:催办调整(无需回复,只需要签收);右上角新增消息通知;

zhangchong 1 年之前
父节点
当前提交
ab47631889
共有 43 个文件被更改,包括 416 次插入1087 次删除
  1. 0 0
      src/api/business/commonAdvice.ts
  2. 17 3
      src/components/CommonAdvice/index.vue
  3. 9 9
      src/components/LogicFlow/index.vue
  4. 1 1
      src/layout/navBars/breadcrumb/telControl.vue
  5. 14 34
      src/layout/navBars/breadcrumb/user.vue
  6. 109 297
      src/views/business/countersign/detail/index.vue
  7. 35 198
      src/views/business/countersign/index.vue
  8. 1 1
      src/views/business/delay/backlog/index.vue
  9. 2 2
      src/views/business/delay/index.vue
  10. 1 1
      src/views/business/discern/apply/index.vue
  11. 1 1
      src/views/business/discern/backlog/index.vue
  12. 1 1
      src/views/business/discern/index.vue
  13. 2 3
      src/views/business/followUp/backlog/index.vue
  14. 0 14
      src/views/business/followUp/component/Follow-up-detail.vue
  15. 34 8
      src/views/business/followUp/followedUp/index.vue
  16. 16 5
      src/views/business/followUp/index.vue
  17. 7 11
      src/views/business/order/accept/index.vue
  18. 5 42
      src/views/business/order/backlog/index.vue
  19. 4 3
      src/views/business/order/components/Order-detail.vue
  20. 2 2
      src/views/business/order/components/Order-history.vue
  21. 1 1
      src/views/business/order/components/Order-repeat.vue
  22. 5 0
      src/views/business/order/components/Order-revoke.vue
  23. 4 28
      src/views/business/order/index.vue
  24. 1 1
      src/views/business/overdue/index.vue
  25. 1 1
      src/views/business/overdue/node/index.vue
  26. 1 1
      src/views/business/overdueSoon/index.vue
  27. 1 1
      src/views/business/overdueSoon/node/index.vue
  28. 2 2
      src/views/business/publish/backlog/index.vue
  29. 4 4
      src/views/business/publish/index.vue
  30. 1 1
      src/views/business/redo/index.vue
  31. 1 1
      src/views/business/return/backlog/index.vue
  32. 1 1
      src/views/business/return/index.vue
  33. 1 1
      src/views/business/revocation/index.vue
  34. 3 1
      src/views/business/supervise/backlog/index.vue
  35. 88 20
      src/views/business/supervise/components/Order-supervise-detail.vue
  36. 5 7
      src/views/business/supervise/components/Order-supervise-reply.vue
  37. 13 21
      src/views/business/supervise/index.vue
  38. 0 161
      src/views/business/urge/backlog/index.vue
  39. 14 10
      src/views/business/urge/components/Order-urge-detail.vue
  40. 0 172
      src/views/business/urge/components/Order-urge-reply.vue
  41. 2 11
      src/views/business/urge/index.vue
  42. 1 1
      src/views/home/component/Backlog-list.vue
  43. 5 4
      src/views/system/config/workflow/index.vue

+ 0 - 0
src/api/business/commonP.ts → src/api/business/commonAdvice.ts


+ 17 - 3
src/components/CommonAdvice/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="textarea w100">
-    <el-input v-model="value" type="textarea" :autosize="{ minRows: props.minRows, maxRows: props.maxRows }" :placeholder="placeholder" :maxlength="props.maxlength" :disabled="props.disabled"> </el-input>
+    <el-input v-model="value" type="textarea" show-word-limit :autosize="{ minRows: props.minRows, maxRows: props.maxRows }" :placeholder="placeholder" :maxlength="props.maxlength" :disabled="props.disabled"> </el-input>
     <span class="buttons">
 			<el-button @click="showAdvice" class="default-button" :loading="loading" :disabled="props.disabled">常用意见</el-button>
 			<el-button type="primary" @click="onAddAdvice" :loading="loading" :disabled="props.disabled">添加到常用意见</el-button>
@@ -25,6 +25,10 @@
         </div>
       </template>
       <div class="comments-container" v-loading="state.loading">
+        <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
+          <el-tab-pane label="个人" name="personal"></el-tab-pane>
+          <el-tab-pane label="部门" name="department"></el-tab-pane>
+        </el-tabs>
         <template v-if="state.adviceList.length">
           <!-- 默认状态 -->
           <template v-if="state.active === 'default' && !state.manage">
@@ -84,7 +88,7 @@
 <script setup lang="ts" name="commonAdvice">
 import { reactive, ref, computed } from 'vue';
 import {ElMessage, ElMessageBox, FormInstance} from 'element-plus';
-import { commonList, addCommon, deleteCommon } from '/@/api/business/commonP';
+import { commonList, addCommon, deleteCommon } from '/@/api/business/commonAdvice';
 import { commonEnum } from '/@/utils/constants';
 const emit = defineEmits(['chooseAdvice', 'update:modelValue']);
 const props = defineProps({
@@ -129,6 +133,7 @@ const props = defineProps({
     default: '35%',
   },
 });
+const activeName = ref('personal');// 默认选中tab
 const value = computed({
   get() {
     return props.modelValue;
@@ -197,6 +202,10 @@ const getList = async () => {
     state.loading = false;
   }
 };
+// 切换tab查询意见
+const handleClick = ()=>{
+  getList();
+}
 // 选中常用意见(管理)
 const handleAdvice= (item: any, index: number) => {
   const repeatData = [...state.adviceList];
@@ -288,6 +297,11 @@ defineExpose({
   :deep(.el-textarea__inner) {
     padding-bottom: 40px;
   }
+  :deep(.el-textarea .el-input__count){
+    font-size: 16px;
+    bottom: 20px;
+    right: 250px;
+  }
 }
 .comments-container {
   .comments-box {
@@ -317,7 +331,7 @@ defineExpose({
 .comments-header {
   .active {
     color: var(--el-color-primary);
-    font-size: var(--el-font-size-medium);
+    //font-size: var(--el-font-size-medium);
   }
 }
 :deep(.el-drawer__footer) {

+ 9 - 9
src/components/LogicFlow/index.vue

@@ -371,9 +371,9 @@ const saveOnly = throttle((formEl: FormInstance | undefined) => {
         mittBus.emit('onCurrentContextmenuClick', Object.assign({}, { contextMenuClickId: 1, ...route }));
         mittBus.emit('clearCache', 'systemWorkflow');
         router.push({
-          path: '/system/config/workflow',
-          query:{
-            tabIndex:'1'
+          name: 'systemWorkflow',
+          state:{
+            index:'1'
           }
         });
       });
@@ -385,9 +385,9 @@ const saveOnly = throttle((formEl: FormInstance | undefined) => {
         mittBus.emit('onCurrentContextmenuClick', Object.assign({}, { contextMenuClickId: 1, ...route }));
         mittBus.emit('clearCache', 'systemWorkflow');
         router.push({
-          path: '/system/config/workflow',
-          query:{
-            tabIndex:'1'
+          name: 'systemWorkflow',
+          state:{
+            index:'1'
           }
         });
       });
@@ -431,9 +431,9 @@ const release = throttle((formEl: FormInstance | undefined) => {
             mittBus.emit('onCurrentContextmenuClick', Object.assign({}, { contextMenuClickId: 1, ...route }));
             mittBus.emit('clearCache', 'systemWorkflow');
             router.push({
-              path: '/system/config/workflow',
-              query:{
-                tabIndex:'1'
+              name: 'systemWorkflow',
+              state:{
+                index:'1'
               }
             });
           });

+ 1 - 1
src/layout/navBars/breadcrumb/telControl.vue

@@ -402,7 +402,7 @@ import other from '/@/utils/other';
 import mittBus from '/@/utils/mitt';
 import { workflowStepOptions } from '/@/api/system/workflow';
 import { restFlowStart, restFlowDel, restFlowStartWex, getTelList } from '/@/api/public/wex';
-import { commonList } from '/@/api/business/commonP';
+import { commonList } from '/@/api/business/commonAdvice';
 import { auth } from '/@/utils/authFunction';
 import { VoiceInterfaceObject } from '/@/utils/PhoneScript';
 import { WebsocketInterface } from '/@/utils/websocket';

+ 14 - 34
src/layout/navBars/breadcrumb/user.vue

@@ -21,28 +21,24 @@
 		<div class="layout-navbars-breadcrumb-user-icon" @click="onLayoutSetingClick" title="布局配置">
 			<i class="icon-skin iconfont"></i>
 		</div> -->
-		<!-- <div class="layout-navbars-breadcrumb-user-icon">
+		 <div class="layout-navbars-breadcrumb-user-icon">
 			<el-popover placement="bottom" trigger="click" transition="el-zoom-in-top" :width="300" :persistent="false">
 				<template #reference>
-					<el-badge :is-dot="true">
-						<el-icon title="消息">
-							<ele-Bell />
-						</el-icon>
+					<el-badge :value="12">
+            <SvgIcon name="ele-Bell" title="消息" size="18px"/>
 					</el-badge>
 				</template>
 				<template #default>
 					<UserNews />
 				</template>
 			</el-popover>
-		</div> -->
-		<!-- <div class="layout-navbars-breadcrumb-user-icon" @click="onLockScreen" title="锁屏">
-			<el-icon>
-				<ele-Lock />
-			</el-icon>
 		</div>
-		<div class="layout-navbars-breadcrumb-user-icon mr10" @click="onScreenfullClick" :title="isScreenfull ? '关全屏' : '开全屏'" >
+<!--		 <div class="layout-navbars-breadcrumb-user-icon" @click="onLockScreen" title="锁屏">
+       <SvgIcon name="ele-Lock" title="锁屏" size="18px"/>
+		</div>-->
+<!--		<div class="layout-navbars-breadcrumb-user-icon mr10" @click="onScreenfullClick" :title="isScreenfull ? '关全屏' : '开全屏'" >
 			<i class="iconfont" :class="!isScreenfull ? 'icon-quanping1' : 'icon-tuichuquanping'"></i>
-		</div> -->
+		</div>-->
 		<el-dropdown :show-timeout="70" :hide-timeout="50" @command="onHandleCommandClick">
 			<div class="layout-navbars-breadcrumb-user-link" :title="userInfos.name">
 				<div class="layout-navbars-breadcrumb-user-link-photoBox">
@@ -173,7 +169,7 @@ import { VoiceInterfaceObject } from '/@/utils/PhoneScript';
 import { changePwd } from '/@/api/login/user';
 
 // 引入组件
-// const UserNews = defineAsyncComponent(() => import('/@/layout/navBars/breadcrumb/userNews.vue'));
+const UserNews = defineAsyncComponent(() => import('/@/layout/navBars/breadcrumb/userNews.vue'));
 const Search = defineAsyncComponent(() => import('/@/layout/navBars/breadcrumb/search.vue'));
 
 const router = useRouter();
@@ -479,13 +475,15 @@ onMounted(() => {
 
 <style scoped lang="scss">
 .layout-navbars-breadcrumb-user {
-	width: 100px;
+	width: 150px;
 	overflow: hidden;
+  display: flex;
+  align-items: center;
 	&-link {
 		height: 100%;
 		white-space: nowrap;
 		text-align: center;
-		width: 100%;
+    flex:1;
 		&-photo {
 			background-color: var(--hotline-bg-main-color);
 			border: 2px solid var(--el-color-primary);
@@ -501,14 +499,8 @@ onMounted(() => {
 		padding: 0 10px;
 		cursor: pointer;
 		color: var(--hotline-color-text-main);
-		height: 50px;
-		line-height: 50px;
-		display: flex;
-		align-items: center;
-
 		&:hover {
 			background: var(--hotline-color-user-hover);
-
 			i {
 				display: inline-block;
 				animation: logoAnimation 0.3s ease-in-out;
@@ -518,20 +510,8 @@ onMounted(() => {
 
 	:deep(.el-dropdown) {
 		color: var(--hotline-color-text-main);
-		width: 100%;
+		flex:1;
 	}
-
-	:deep(.el-badge) {
-		height: 40px;
-		line-height: 40px;
-		display: flex;
-		align-items: center;
-	}
-
-	:deep(.el-badge__content.is-fixed) {
-		top: 12px;
-	}
-
 	.intensity {
 		.psdText {
 			font-size: 14px;

+ 109 - 297
src/views/business/countersign/detail/index.vue

@@ -1,324 +1,136 @@
 <template>
-  <div class="business-countersignDetail-container layout-pd">
-    <!-- 搜索  -->
-    <el-card shadow="never">
-      <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent class="mt15" label-width="100px">
-        <el-row :gutter="10">
-          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
-            <el-form-item label="发布状态" prop="AcceptType">
-              <el-select v-model="state.queryParams.AcceptType" placeholder="请选择发布状态" multiple clearable class="w100">
-                <el-option v-for="item in state.channelOptions" :value="item.key" :key="item.key" :label="item.value" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
-            <el-form-item label="工单标题" prop="Keyword">
-              <el-input v-model="state.queryParams.Keyword" placeholder="工单编码/标题" clearable @keyup.enter="queryList" />
-            </el-form-item>
-          </el-col>
-          <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="Content">
-                <el-input v-model="state.queryParams.Content" placeholder="姓名/工号" clearable @keyup.enter="queryList" />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <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-option v-for="item in state.channelOptions" :value="item.key" :key="item.key" :label="item.value" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <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-option v-for="item in state.channelOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <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="HotspotId">
-                <el-tree-select
-                    class="w100"
-                    v-model="state.queryParams.HotspotId"
-                    filterable
-                    clearable
-                    multiple
-                    :render-after-expand="false"
-                    show-checkbox
-                    placeholder="请选择热点分类"
-                    :props="HotspotProps"
-                    lazy
-                    :load="load"
-                    node-key="id"
-                    check-strictly
-                />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <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="crTime">
-                <el-date-picker
-                    v-model="state.queryParams.crTime"
-                    type="datetimerange"
-                    unlink-panels
-                    range-separator="至"
-                    start-placeholder="开始时间"
-                    end-placeholder="结束时间"
-                    :shortcuts="shortcuts"
-                    @change="timeStartChangeCr"
-                    value-format="YYYY-MM-DD[T]HH:mm:ss"
-                />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <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="exTime">
-                <el-date-picker
-                    v-model="state.queryParams.exTime"
-                    type="datetimerange"
-                    unlink-panels
-                    range-separator="至"
-                    start-placeholder="开始时间"
-                    end-placeholder="结束时间"
-                    :shortcuts="shortcuts"
-                    @change="timeStartChangeEx"
-                    value-format="YYYY-MM-DD[T]HH:mm:ss"
-                />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
-            <el-form-item label=" ">
-              <div class="flex-end w100">
-                <el-button type="primary" @click="queryList" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
-                <el-button @click="resetQuery(ruleFormRef)" v-waves class="default-button" :loading="state.loading"> <SvgIcon name="ele-Refresh" class="mr5" />重置 </el-button>
-                <el-button link type="primary" @click="closeSearch">
-                  {{ searchCol ? '展开' : '收起' }}
-                  <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-                </el-button>
-              </div>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-    </el-card>
-    <el-card shadow="never">
-      <!-- 功能按钮 -->
-      <div class="mb20">
-          <el-button type="primary" @click="onExport" v-auth="'business:countersign:detail:export'" :disabled="!multipleSelection.length">
-            <SvgIcon name="iconfont icon-daochu" class="mr5" />导出
-          </el-button>
-      </div>
-      <!-- 表格 -->
-      <el-table :data="state.tableData" v-loading="state.loading" row-key="id" ref="multipleTableRef" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" />
-        <el-table-column prop="no" label="会签编码" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="no" label="工单编号" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="no" label="来源方式" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptTypeText" label="省/市工单" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="expiredTime" label="节点期满时间" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="expiredTime" label="工单期满时间" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="expiredTime" label="受理时间" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="acceptTypeText" label="受理类型" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptTypeText" label="工单状态" show-overflow-tooltip></el-table-column>
-        <el-table-column label="工单标题" show-overflow-tooltip width="400">
-          <template #default="{ row }">
-            <el-button link type="primary">{{ row.title }}</el-button>
-          </template>
-        </el-table-column>
-        <el-table-column prop="acceptTypeText" label="接办部门" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="expiredTime" label="接办时间" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptTypeText" label="会签发起部门" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptTypeText" label="会签发起人" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="expiredTime" label="会签发起时间" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="acceptTypeText" label="被会签部门" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptTypeText" label="会签处理人" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="expiredTime" label="会签处理时间" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
-        <template #empty>
-          <Empty />
+	<el-dialog v-model="state.dialogVisible" draggable title="会签明细" ref="dialogRef" width="50%" append-to-body destroy-on-close>
+		<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+			<el-form-item label="关键词" prop="Keyword">
+				<el-input v-model="state.queryParams.Keyword" placeholder="工单编号/标题" clearable @keyup.enter="queryList" />
+			</el-form-item>
+			<el-form-item label=" ">
+				<el-button type="primary" @click="queryList" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
+				<el-button @click="resetQuery(ruleFormRef)" v-waves class="default-button" :loading="state.loading">
+					<SvgIcon name="ele-Refresh" class="mr5" />重置
+				</el-button>
+			</el-form-item>
+		</el-form>
+		<!-- 表格 -->
+		<el-table :data="state.tableData" v-loading="state.loading" row-key="id" ref="multipleTableRef">
+			<el-table-column prop="no" label="会签编码" show-overflow-tooltip></el-table-column>
+      <el-table-column prop="order.no" label="工单编号" show-overflow-tooltip width="150"></el-table-column>
+      <el-table-column prop="sourceChannel" label="来源方式" show-overflow-tooltip></el-table-column>
+			<el-table-column width="100" label="省/市工单" prop="isProvince" >
+        <template #default="{ row }">
+          <span>{{ row.order?.isProvince ? '省工单' : '市工单' }}</span>
         </template>
-      </el-table>
-      <!-- 分页 -->
-      <pagination
-          :total="state.total"
-          v-model:page="state.queryParams.PageIndex"
-          v-model:limit="state.queryParams.PageSize"
-          @pagination="queryList"
-      />
-    </el-card>
-    <!-- 工单详情 -->
-    <order-detail ref="OrderDetailRef" @updateList="queryList" />
-  </div>
+      </el-table-column>
+			<el-table-column prop="expiredTime" label="节点期满时间" show-overflow-tooltip width="170">
+				<template #default="{ row }">
+					<span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+				</template>
+			</el-table-column>
+			<el-table-column prop="expiredTime" label="工单期满时间" show-overflow-tooltip width="170">
+				<template #default="{ row }">
+					<span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+				</template>
+			</el-table-column>
+			<el-table-column prop="startTime" label="受理时间" show-overflow-tooltip width="170">
+				<template #default="{ row }">
+					<span>{{ formatDate(row.startTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+				</template>
+			</el-table-column>
+      <el-table-column prop="acceptType" label="受理类型" show-overflow-tooltip width="150"></el-table-column>
+      <el-table-column label="工单状态" show-overflow-tooltip width="100" prop="statusText"></el-table-column>
+      <el-table-column label="工单编号" prop="no" show-overflow-tooltip width="150">
+        <template #default="{ row }">
+          <span>{{ row.no }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="actualHandleOrgName" label="接办部门" show-overflow-tooltip width="170"></el-table-column>
+      <el-table-column prop="actualHandleTime" label="接办时间" show-overflow-tooltip width="170">
+        <template #default="{ row }">
+          <span>{{ formatDate(row.actualHandleTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="order.hotspotName" label="热点分类" show-overflow-tooltip width="120"></el-table-column>
+			<el-table-column prop="acceptTypeText" label="会签发起部门" show-overflow-tooltip></el-table-column>
+			<el-table-column prop="acceptTypeText" label="会签发起人" show-overflow-tooltip></el-table-column>
+			<el-table-column prop="expiredTime" label="会签发起时间" show-overflow-tooltip width="170">
+				<template #default="{ row }">
+					<span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+				</template>
+			</el-table-column>
+			<el-table-column prop="acceptTypeText" label="被会签部门" show-overflow-tooltip></el-table-column>
+			<el-table-column prop="acceptTypeText" label="会签处理人" show-overflow-tooltip></el-table-column>
+			<el-table-column prop="expiredTime" label="会签处理时间" show-overflow-tooltip width="170">
+				<template #default="{ row }">
+					<span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+				</template>
+			</el-table-column>
+			<template #empty>
+				<Empty />
+			</template>
+		</el-table>
+		<!-- 分页 -->
+		<pagination :total="state.total" v-model:page="state.queryParams.PageIndex" v-model:limit="state.queryParams.PageSize" @pagination="queryList" />
+		<template #footer>
+			<span class="dialog-footer">
+				<el-button @click="closeDialog" class="default-button">关 闭</el-button>
+			</span>
+		</template>
+	</el-dialog>
 </template>
 <script setup lang="ts" name="orderCountersignDetail">
-import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
-import { hotSpotType, listBaseData } from '/@/api/business/order';
-import {ElButton, ElMessage, FormInstance} from 'element-plus';
+import { reactive, ref } from 'vue';
+import { ElButton, ElMessage, FormInstance } from 'element-plus';
 import { auth } from '/@/utils/authFunction';
-import { throttle, } from '/@/utils/tools';
-import { shortcuts } from '/@/utils/constants';
+import { throttle } from '/@/utils/tools';
 import { formatDate } from '/@/utils/formatTime';
-import {useRouter} from "vue-router";
+import { useRouter } from 'vue-router';
 // 引入组件
-const OrderDetail = defineAsyncComponent(() => import('/@/views/business/order/components/Order-detail.vue'));
 
 // 定义变量内容
 const ruleFormRef = ref<RefType>(); // 表单ref
-const searchCol = ref(true); // 是否显示搜索栏
 const router = useRouter(); // 路由
 const state = reactive(<any>{
-  queryParams: {
-    // 查询条件
-    PageIndex: 1,
-    PageSize: 10,
-    Keyword: '', // 关键字
-    Content: '', // 工单内容
-    AcceptType: '', // 受理类型
-    Channel: '', // 渠道
-    HotspotId: [], // 热点
-    OrgCode: [], // 机构
-    NameOrNo: '', // 受理坐席
-    crTime: [], // 创建时间
-    CreationTimeStart: '', // 创建时间 开始
-    CreationTimeEnd: '', // 创建时间 结束
-    TransferPhone: '', // 转派人
-    EmergencyLevel: [], // 紧急程度
-    exTime: [], // 办理期限
-    ExpiredTimeStart: '', //办理期限 开始
-    ExpiredTimeEnd: '', //办理期限 结束
-    PhoneNo: '', // 手机号
-    Status: [], // 状态
-    pushTypeOptions: '', //
-    PushTypeCode: '', //推送类型
-  },
-  tableData: [{}], //表单
-  loading: false, // 加载
-  total: 0, // 总数
-  channelOptions: [], // 来源频道
-  emergencyLevelOptions: [], // 紧急程度
-  orderStatusOptions: [], // 工单状态
-  orgsOptions: [], // 部门
-  pushTypeOptions: [], //推送分类
-  orgData: [], // 机构数据
+	queryParams: {
+		// 查询条件
+		PageIndex: 1,
+		PageSize: 10,
+		Keyword: '', // 关键字
+	},
+	dialogVisible: false, // 是否显示弹窗
+	tableData: [{}], //表单
+	loading: false, // 加载
+	total: 0, // 总数
+	countersignId: '', // 会签ID
 });
-// 热点分类远程搜索
-const HotspotProps = {
-  label: 'hotSpotName',
-  children: 'children',
-  isLeaf: 'isLeaf',
-};
-// 热点分类远程搜索
-const load = async (node: any, resolve: any) => {
-  if (node.isLeaf) return resolve([]);
-  let res: any = await hotSpotType({ id: node.data.id ? node.data.id : '' });
-  resolve(res.result);
-};
-
-// 展开/收起
-const closeSearch = () => {
-  searchCol.value = !searchCol.value;
-};
-const handleTimeChange = (val: string[], startKey: string, endKey: string) => {
-  if (val) {
-    state.queryParams[startKey] = val[0];
-    state.queryParams[endKey] = val[1];
-  } else {
-    state.queryParams[startKey] = '';
-    state.queryParams[endKey] = '';
-  }
-};
-// 受理时间
-const timeStartChangeCr = (val: string[]) => {
-  handleTimeChange(val, 'CreationTimeStart', 'CreationTimeEnd');
-};
-// 过期时间
-const timeStartChangeEx = (val: string[]) => {
-  handleTimeChange(val, 'ExpiredTimeStart', 'ExpiredTimeEnd');
-};
-// 获取查询条件基础信息
-const getBaseData = async () => {
-  const res: any = await listBaseData();
-  state.channelOptions = res.result?.channelOptions ?? [];
-  state.emergencyLevelOptions = res.result?.emergencyLevelOptions ?? [];
-  state.orgsOptions = res.result?.orgsOptions ?? [];
-  state.pushTypeOptions = res.result?.pushTypeOptions ?? [];
-  state.orderStatusOptions = res.result?.orderStatusOptions ?? [];
-};
 /** 获取列表 */
 const queryList = throttle(() => {
-  if (!auth('business:Countersign:detail:query')) ElMessage.error('抱歉,您没有权限查看会签明细列表!');
-  else {
-  }
+	if (!auth('business:countersign:detail')) ElMessage.error('抱歉,您没有权限查看会签明细列表!');
+	else {
+	}
 }, 500);
-
 /** 重置按钮操作 */
 const resetQuery = throttle((formEl: FormInstance | undefined) => {
-  if (!formEl) return;
-  formEl.resetFields();
-  state.queryParams.CreationTimeStart = '';
-  state.queryParams.CreationTimeEnd = '';
-  state.queryParams.ExpiredTimeStart = '';
-  state.queryParams.ExpiredTimeStart = '';
-  queryList();
+	if (!formEl) return;
+	formEl.resetFields();
+	queryList();
 }, 500);
-// 表格多选
-const multipleTableRef = ref<RefType>()
-const multipleSelection = ref<any>([])
-const handleSelectionChange = (val: any[]) => {
-  multipleSelection.value = val
-}
-// 导出
-const onExport = () => {
-  console.log('导出');
+// 打开弹窗
+const openDialog = (val: any) => {
+	state.countersignId = val.id;
+	queryList();
+	state.dialogVisible = true;
+};
+// 关闭弹窗
+const closeDialog = () => {
+	state.dialogVisible = false;
 };
-onMounted(async () => {
-  await getBaseData();
-  queryList();
+defineExpose({
+	openDialog,
+	closeDialog,
 });
 </script>
 
 <style scoped lang="scss">
 .business-countersignDetail-container {
-  .arrow {
-    transition: transform var(--el-transition-duration);
-    cursor: pointer;
-  }
-  .arrow.is-reverse {
-    transform: rotateZ(-180deg);
-  }
 }
 </style>

+ 35 - 198
src/views/business/countersign/index.vue

@@ -5,107 +5,14 @@
       <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent class="mt15" label-width="100px">
         <el-row :gutter="10">
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
-            <el-form-item label="发布状态" prop="AcceptType">
-              <el-select v-model="state.queryParams.AcceptType" placeholder="请选择发布状态" multiple clearable class="w100">
-                <el-option v-for="item in state.channelOptions" :value="item.key" :key="item.key" :label="item.value" />
-              </el-select>
+            <el-form-item label="关键词" prop="Keyword">
+              <el-input v-model="state.queryParams.Keyword" placeholder="工单编号/标题" clearable @keyup.enter="queryList" />
             </el-form-item>
           </el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
-            <el-form-item label="工单标题" prop="Keyword">
-              <el-input v-model="state.queryParams.Keyword" placeholder="工单编码/标题" clearable @keyup.enter="queryList" />
-            </el-form-item>
-          </el-col>
-          <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="Content">
-                <el-input v-model="state.queryParams.Content" placeholder="姓名/工号" clearable @keyup.enter="queryList" />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <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-option v-for="item in state.channelOptions" :value="item.key" :key="item.key" :label="item.value" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <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-option v-for="item in state.channelOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <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="HotspotId">
-                <el-tree-select
-                    class="w100"
-                    v-model="state.queryParams.HotspotId"
-                    filterable
-                    clearable
-                    multiple
-                    :render-after-expand="false"
-                    show-checkbox
-                    placeholder="请选择热点分类"
-                    :props="HotspotProps"
-                    lazy
-                    :load="load"
-                    node-key="id"
-                    check-strictly
-                />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <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="crTime">
-                <el-date-picker
-                    v-model="state.queryParams.crTime"
-                    type="datetimerange"
-                    unlink-panels
-                    range-separator="至"
-                    start-placeholder="开始时间"
-                    end-placeholder="结束时间"
-                    :shortcuts="shortcuts"
-                    @change="timeStartChangeCr"
-                    value-format="YYYY-MM-DD[T]HH:mm:ss"
-                />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <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="exTime">
-                <el-date-picker
-                    v-model="state.queryParams.exTime"
-                    type="datetimerange"
-                    unlink-panels
-                    range-separator="至"
-                    start-placeholder="开始时间"
-                    end-placeholder="结束时间"
-                    :shortcuts="shortcuts"
-                    @change="timeStartChangeEx"
-                    value-format="YYYY-MM-DD[T]HH:mm:ss"
-                />
-              </el-form-item>
-            </el-col>
-          </transition>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
             <el-form-item label=" ">
-              <div class="flex-end w100">
                 <el-button type="primary" @click="queryList" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
                 <el-button @click="resetQuery(ruleFormRef)" v-waves class="default-button" :loading="state.loading"> <SvgIcon name="ele-Refresh" class="mr5" />重置 </el-button>
-                <el-button link type="primary" @click="closeSearch">
-                  {{ searchCol ? '展开' : '收起' }}
-                  <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-                </el-button>
-              </div>
             </el-form-item>
           </el-col>
         </el-row>
@@ -122,9 +29,13 @@
       <el-table :data="state.tableData" v-loading="state.loading" row-key="id" ref="multipleTableRef" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55" />
         <el-table-column prop="no" label="会签编码" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="no" label="工单编号" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="no" label="来源方式" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptTypeText" label="省/市工单" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="order.no" label="工单编号" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column prop="sourceChannel" label="来源方式" show-overflow-tooltip></el-table-column>
+        <el-table-column width="100" label="省/市工单" prop="isProvince" >
+          <template #default="{ row }">
+            <span>{{ row.order?.isProvince ? '省工单' : '市工单' }}</span>
+          </template>
+        </el-table-column>
         <el-table-column prop="expiredTime" label="节点期满时间" show-overflow-tooltip width="170">
           <template #default="{ row }">
             <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
@@ -135,25 +46,25 @@
             <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="expiredTime" label="受理时间" show-overflow-tooltip width="170">
+        <el-table-column prop="startTime" label="受理时间" show-overflow-tooltip width="170">
           <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+            <span>{{ formatDate(row.startTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="acceptTypeText" label="受理类型" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptTypeText" label="工单状态" show-overflow-tooltip></el-table-column>
-        <el-table-column label="工单标题" show-overflow-tooltip width="400">
+        <el-table-column prop="acceptType" label="受理类型" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column label="工单状态" show-overflow-tooltip width="100" prop="statusText"></el-table-column>
+        <el-table-column label="工单编号" prop="no" show-overflow-tooltip width="150">
           <template #default="{ row }">
-            <el-button link type="primary">{{ row.title }}</el-button>
+            <span>{{ row.no }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="acceptTypeText" label="接办部门" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="expiredTime" label="接办时间" show-overflow-tooltip width="170">
+        <el-table-column prop="actualHandleOrgName" label="接办部门" show-overflow-tooltip width="170"></el-table-column>
+        <el-table-column prop="actualHandleTime" label="接办时间" show-overflow-tooltip width="170">
           <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+            <span>{{ formatDate(row.actualHandleTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip width="200"></el-table-column>
         <el-table-column prop="acceptTypeText" label="会签发起部门" show-overflow-tooltip></el-table-column>
         <el-table-column prop="acceptTypeText" label="会签发起人" show-overflow-tooltip></el-table-column>
         <el-table-column prop="expiredTime" label="会签发起时间" show-overflow-tooltip width="170">
@@ -163,8 +74,8 @@
         </el-table-column>
         <el-table-column label="操作" width="160" fixed="right" align="center">
           <template #default="{ row }">
-            <el-button link type="primary" @click="onDetail(row)" title="查看会签明细" v-auth="'business:countersign:detail'"> 会签明细 </el-button>
-            <el-button link type="primary" @click="onDetail(row)" title="查看工单详情" v-auth="'business:order:countersign:detail'"> 工单详情 </el-button>
+            <el-button link type="primary" @click="onCountersignDetail(row)" title="查看会签明细" v-auth="'business:countersign:detail'"> 会签明细 </el-button>
+            <el-button link type="primary" @click="onOrderDetail(row)" title="查看工单详情" v-auth="'business:order:countersign:detail'"> 工单详情 </el-button>
           </template>
         </el-table-column>
         <template #empty>
@@ -180,24 +91,23 @@
       />
     </el-card>
     <!-- 工单详情 -->
-    <order-detail ref="OrderDetailRef" @updateList="queryList" />
+    <order-detail ref="orderDetailRef" @updateList="queryList" />
+    <!-- 会签明细 -->
+    <countersign-detail ref="countersignDetailRef" @updateList="queryList" />
   </div>
 </template>
 <script setup lang="ts" name="orderCountersign">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
-import { hotSpotType, listBaseData } from '/@/api/business/order';
 import {ElButton, ElMessage, FormInstance} from 'element-plus';
 import { auth } from '/@/utils/authFunction';
 import { throttle, } from '/@/utils/tools';
-import { shortcuts } from '/@/utils/constants';
 import { formatDate } from '/@/utils/formatTime';
 import {useRouter} from "vue-router";
 // 引入组件
 const OrderDetail = defineAsyncComponent(() => import('/@/views/business/order/components/Order-detail.vue'));
-
+const CountersignDetail = defineAsyncComponent(() => import('/@/views/business/countersign/detail/index.vue'));
 // 定义变量内容
 const ruleFormRef = ref<RefType>(); // 表单ref
-const searchCol = ref(true); // 是否显示搜索栏
 const router = useRouter(); // 路由
 const state = reactive(<any>{
   queryParams: {
@@ -205,78 +115,11 @@ const state = reactive(<any>{
     PageIndex: 1,
     PageSize: 10,
     Keyword: '', // 关键字
-    Content: '', // 工单内容
-    AcceptType: '', // 受理类型
-    Channel: '', // 渠道
-    HotspotId: [], // 热点
-    OrgCode: [], // 机构
-    NameOrNo: '', // 受理坐席
-    crTime: [], // 创建时间
-    CreationTimeStart: '', // 创建时间 开始
-    CreationTimeEnd: '', // 创建时间 结束
-    TransferPhone: '', // 转派人
-    EmergencyLevel: [], // 紧急程度
-    exTime: [], // 办理期限
-    ExpiredTimeStart: '', //办理期限 开始
-    ExpiredTimeEnd: '', //办理期限 结束
-    PhoneNo: '', // 手机号
-    Status: [], // 状态
-    pushTypeOptions: '', //
-    PushTypeCode: '', //推送类型
   },
   tableData: [{}], //表单
   loading: false, // 加载
   total: 0, // 总数
-  channelOptions: [], // 来源频道
-  emergencyLevelOptions: [], // 紧急程度
-  orderStatusOptions: [], // 工单状态
-  orgsOptions: [], // 部门
-  pushTypeOptions: [], //推送分类
-  orgData: [], // 机构数据
 });
-// 热点分类远程搜索
-const HotspotProps = {
-  label: 'hotSpotName',
-  children: 'children',
-  isLeaf: 'isLeaf',
-};
-// 热点分类远程搜索
-const load = async (node: any, resolve: any) => {
-  if (node.isLeaf) return resolve([]);
-  let res: any = await hotSpotType({ id: node.data.id ? node.data.id : '' });
-  resolve(res.result);
-};
-
-// 展开/收起
-const closeSearch = () => {
-  searchCol.value = !searchCol.value;
-};
-const handleTimeChange = (val: string[], startKey: string, endKey: string) => {
-  if (val) {
-    state.queryParams[startKey] = val[0];
-    state.queryParams[endKey] = val[1];
-  } else {
-    state.queryParams[startKey] = '';
-    state.queryParams[endKey] = '';
-  }
-};
-// 受理时间
-const timeStartChangeCr = (val: string[]) => {
-  handleTimeChange(val, 'CreationTimeStart', 'CreationTimeEnd');
-};
-// 过期时间
-const timeStartChangeEx = (val: string[]) => {
-  handleTimeChange(val, 'ExpiredTimeStart', 'ExpiredTimeEnd');
-};
-// 获取查询条件基础信息
-const getBaseData = async () => {
-  const res: any = await listBaseData();
-  state.channelOptions = res.result?.channelOptions ?? [];
-  state.emergencyLevelOptions = res.result?.emergencyLevelOptions ?? [];
-  state.orgsOptions = res.result?.orgsOptions ?? [];
-  state.pushTypeOptions = res.result?.pushTypeOptions ?? [];
-  state.orderStatusOptions = res.result?.orderStatusOptions ?? [];
-};
 /** 获取列表 */
 const queryList = throttle(() => {
   if (!auth('business:Countersign:query')) ElMessage.error('抱歉,您没有权限查看工单会签列表!');
@@ -288,10 +131,6 @@ const queryList = throttle(() => {
 const resetQuery = throttle((formEl: FormInstance | undefined) => {
   if (!formEl) return;
   formEl.resetFields();
-  state.queryParams.CreationTimeStart = '';
-  state.queryParams.CreationTimeEnd = '';
-  state.queryParams.ExpiredTimeStart = '';
-  state.queryParams.ExpiredTimeStart = '';
   queryList();
 }, 500);
 // 表格多选
@@ -305,24 +144,22 @@ const onExport = () => {
   console.log('导出');
 };
 // 查看工单详情
-const OrderDetailRef = ref<RefType>(); // 工单详情ref
-const onDetail = (row: any) => {
-  OrderDetailRef.value.openDialog()
+const orderDetailRef = ref<RefType>(); // 工单详情ref
+const onOrderDetail = (row: any) => {
+  orderDetailRef.value.openDialog(row)
 };
-onMounted(async () => {
-  await getBaseData();
+// 会签明细
+const countersignDetailRef = ref<RefType>(); // 会签明细ref
+const onCountersignDetail = (row:any)=>{
+  countersignDetailRef.value.openDialog(row)
+}
+onMounted( () => {
   queryList();
 });
 </script>
 
 <style scoped lang="scss">
 .business-countersign-container {
-  .arrow {
-    transition: transform var(--el-transition-duration);
-    cursor: pointer;
-  }
-  .arrow.is-reverse {
-    transform: rotateZ(-180deg);
-  }
+
 }
 </style>

+ 1 - 1
src/views/business/delay/backlog/index.vue

@@ -6,7 +6,7 @@
 				<el-row :gutter="10">
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
 						<el-form-item label="关键字" prop="Keyword">
-							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
 						</el-form-item>
 					</el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">

+ 2 - 2
src/views/business/delay/index.vue

@@ -6,7 +6,7 @@
 				<el-row :gutter="10">
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
 						<el-form-item label="关键字" prop="Keyword">
-							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
 						</el-form-item>
 					</el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
@@ -107,7 +107,7 @@
         <el-form label-width="90px" ref="ruleFormRef">
           <el-row :gutter="35">
             <el-col :xs="24" :sm="8" :md="8" :lg="8" :xl="8">
-              <el-form-item label="工单编"> {{ state.currentRow.no }} </el-form-item>
+              <el-form-item label="工单编"> {{ state.currentRow.no }} </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="16" :md="16" :lg="16" :xl="16">
               <el-form-item label="工单标题"> {{ state.currentRow.title }} </el-form-item>

+ 1 - 1
src/views/business/discern/apply/index.vue

@@ -6,7 +6,7 @@
 				<el-row :gutter="10">
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
 						<el-form-item label="关键词" prop="Keyword">
-							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">

+ 1 - 1
src/views/business/discern/backlog/index.vue

@@ -6,7 +6,7 @@
 				<el-row :gutter="10">
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
 						<el-form-item label="关键字" prop="Keyword">
-							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
 						</el-form-item>
 					</el-col>
 						<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">

+ 1 - 1
src/views/business/discern/index.vue

@@ -13,7 +13,7 @@
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
 						<el-form-item label="关键字" prop="Keyword">
-							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
 						</el-form-item>
 					</el-col>
 						<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">

+ 2 - 3
src/views/business/followUp/backlog/index.vue

@@ -6,7 +6,7 @@
 				<el-row :gutter="10">
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
 						<el-form-item label="关键字" prop="Keyword">
-							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
 						</el-form-item>
 					</el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
@@ -39,9 +39,8 @@
 			<!-- 表格 -->
 			<el-table :data="state.tableData" v-loading="state.loading" row-key="id" ref="multipleTableRef" @selection-change="handleSelectionChange">
 				<el-table-column type="selection" width="55" />
-				<el-table-column prop="order.no" label="工单编" show-overflow-tooltip width="150"></el-table-column>
+				<el-table-column prop="order.no" label="工单编" show-overflow-tooltip width="150"></el-table-column>
 				<el-table-column prop="visitStateText" label="回访状态" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="visitTypeText" label="回访方式" show-overflow-tooltip></el-table-column>
 				<el-table-column label="工单标题" show-overflow-tooltip width="300">
 					<template #default="{ row }">
             <span class="color-primary">{{ row.order?.title }}</span>

+ 0 - 14
src/views/business/followUp/component/Follow-up-detail.vue

@@ -129,19 +129,6 @@
 									<el-checkbox v-model="state.ruleForm.isPutThrough" :disabled="disabled">未接通</el-checkbox>
 								</el-form-item>
 							</el-col>
-							<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-								<el-form-item label="是否重办">
-									<el-radio-group v-model="state.ruleForm.isAgain" :disabled="disabled">
-										<el-radio :label="true">是</el-radio>
-										<el-radio :label="false">否</el-radio>
-									</el-radio-group>
-								</el-form-item>
-							</el-col>
-							<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-								<el-form-item label="当前工单已重办次数" label-width="140px">
-									{{ againCount }}次 <el-button type="primary" class="ml5" title="查看重办记录" link v-if="againCount > 0">查看重办记录</el-button>
-								</el-form-item>
-							</el-col>
 						</el-row>
 
 						<el-row v-for="(item, index) in state.ruleForm.visitDetails" :key="item.id" :gutter="10">
@@ -322,7 +309,6 @@ const state = reactive<any>({
 	transform: 'translate(0px, 0px)', // 附件弹窗位置
 	ruleForm: {
 		isPutThrough: false, //未接通
-		isAgain: false, // 是否重办
 		visitDetails: {},
 	},
 	orderDetail: {}, // 工单详情

+ 34 - 8
src/views/business/followUp/followedUp/index.vue

@@ -6,7 +6,7 @@
 				<el-row :gutter="10">
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
 						<el-form-item label="关键字" prop="Keyword">
-							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
 						</el-form-item>
 					</el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
@@ -39,7 +39,7 @@
 			<!-- 表格 -->
 			<el-table :data="state.tableData" v-loading="state.loading" row-key="id" ref="multipleTableRef" @selection-change="handleSelectionChange">
 				<el-table-column type="selection" width="55" />
-        <el-table-column prop="orderVisit.order.no" label="工单编" show-overflow-tooltip width="150"></el-table-column>
+        <el-table-column prop="orderVisit.order.no" label="工单编" show-overflow-tooltip width="150"></el-table-column>
         <el-table-column width="100" label="省/市工单" prop="isProvince" >
           <template #default="{ row }">
             <span>{{ row.orderVisit?.order?.isProvince ? '省工单' : '市工单' }}</span>
@@ -88,12 +88,38 @@
             <span>{{ formatDate(row.orderVisit?.visitTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="no" label="语音评价" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="no" label="话务员满意度" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="no" label="被回访部门" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="no" label="部门办件结果" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="no" label="部门办件态度" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="no" label="不满意原因" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="no" label="语音评价" show-overflow-tooltip>
+          <template #default="{ row }">
+              <span v-if="row.visitTarget===10">{{row.voiceEvaluate}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="no" label="话务员满意度" show-overflow-tooltip width="150">
+          <template #default="{ row }">
+            <span v-if="row.visitTarget===10">{{row.seatEvaluate}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="no" label="被回访部门" show-overflow-tooltip width="150">
+          <template #default="{ row }">
+            <span v-if="row.visitTarget===20">{{row.visitOrgName}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="no" label="部门办件结果" show-overflow-tooltip width="150">
+          <template #default="{ row }">
+            <span v-if="row.visitTarget===20">{{row.orgProcessingResults?.name}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="no" label="部门办件态度" show-overflow-tooltip width="150">
+          <template #default="{ row }">
+            <span v-if="row.visitTarget===20">{{row.orgHandledAttitude?.name}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="no" label="不满意原因" show-overflow-tooltip width="150">
+          <template #default="{ row }">
+            <span v-if="row.visitTarget===20">
+              {{row.orgNoSatisfiedReason?.map(item => item.name).join(',')}}
+            </span>
+          </template>
+        </el-table-column>
         <el-table-column prop="no" label="是否可甄别" show-overflow-tooltip></el-table-column>
         <el-table-column prop="no" label="是否甄别" show-overflow-tooltip></el-table-column>
         <el-table-column prop="no" label="甄别结果" show-overflow-tooltip></el-table-column>

+ 16 - 5
src/views/business/followUp/index.vue

@@ -6,7 +6,7 @@
 				<el-row :gutter="10">
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
 						<el-form-item label="关键字" prop="Keyword">
-							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
 						</el-form-item>
 					</el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
@@ -42,7 +42,7 @@
 			<!-- 表格 -->
 			<el-table :data="state.tableData" v-loading="state.loading" row-key="id" ref="multipleTableRef" @selection-change="handleSelectionChange">
 				<el-table-column type="selection" width="55" />
-				<el-table-column prop="order.no" label="工单编" show-overflow-tooltip width="150"></el-table-column>
+				<el-table-column prop="order.no" label="工单编" show-overflow-tooltip width="150"></el-table-column>
 				<el-table-column prop="order.sourceChannel" label="来源方式" show-overflow-tooltip></el-table-column>
         <el-table-column width="100" label="省/市工单" prop="isProvince" >
           <template #default="{ row }">
@@ -87,7 +87,6 @@
 					</template>
 				</el-table-column>
 				<el-table-column prop="employeeName" label="回访人" show-overflow-tooltip></el-table-column>
-
 				<el-table-column prop="visitTime" label="回访时间" show-overflow-tooltip width="170">
 					<template #default="{ row }">
 						<span>{{ formatDate(row.visitTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
@@ -99,8 +98,20 @@
             <span v-else><span>{{ row.isPutThrough ? '已接通' : '未接通' }}</span></span>
           </template>
         </el-table-column>
-				<el-table-column prop="no" label="语音评价" show-overflow-tooltip></el-table-column>
-				<el-table-column prop="no" label="话务员满意度" show-overflow-tooltip width="150"></el-table-column>
+				<el-table-column prop="no" label="语音评价" show-overflow-tooltip>
+          <template #default="{ row }">
+              <span v-for="item in row.orderVisitDetails">
+                <span v-if="item.visitTarget===10">{{item.voiceEvaluate}}</span>
+              </span>
+          </template>
+        </el-table-column>
+				<el-table-column prop="no" label="话务员满意度" show-overflow-tooltip width="150">
+          <template #default="{ row }">
+            <span v-for="item in row.orderVisitDetails">
+                <span v-if="item.visitTarget===10">{{item.seatEvaluate}}</span>
+              </span>
+          </template>
+        </el-table-column>
 				<el-table-column label="操作" width="210" fixed="right" align="center">
 					<template #default="{ row }">
             <el-button link type="primary" @click="onOrderDetail(row)" title="查看工单详情" v-auth="'business:followUp:detail'"> 工单详情 </el-button>

+ 7 - 11
src/views/business/order/accept/index.vue

@@ -82,7 +82,7 @@
 											},
 										]"
 									>
-										<el-input v-model="state.ruleForm.fromPhone" placeholder="请填写来电号码" clearable @blur="searchHistory"> </el-input>
+										<el-input v-model="state.ruleForm.fromPhone" placeholder="请填写来电号码" clearable> </el-input>
 									</el-form-item>
 								</template>
 								<!-- 来电弹单 -->
@@ -206,7 +206,7 @@
 										},
 									]"
 								>
-									<el-input v-model="state.ruleForm.contact" placeholder="请填写联系电话" clearable> </el-input>
+									<el-input v-model="state.ruleForm.contact" placeholder="请填写联系电话"  @blur="searchHistory" clearable> </el-input>
 								</el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
@@ -229,7 +229,7 @@
 						<p class="border-title mb10">诉求信息</p>
 						<el-row>
 							<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" v-if="state.ruleForm.no">
-								<el-form-item label="工单编"> {{ state.ruleForm.no }} </el-form-item>
+								<el-form-item label="工单编"> {{ state.ruleForm.no }} </el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 								<el-form-item label="工单标题" prop="title" :rules="[{ required: true, message: '请填写工单标题', trigger: 'blur' }]">
@@ -432,7 +432,7 @@
 						</el-tabs> -->
 						<el-form :model="state.queryParams" ref="queryParamsRef" :inline="true" @submit.native.prevent>
 							<el-form-item label="关键词" prop="Keyword">
-								<el-input v-model="state.queryParams.Keyword" placeholder="工单标题/工单编" clearable @keyup.enter="handleQuery" />
+								<el-input v-model="state.queryParams.Keyword" placeholder="工单标题/工单编" clearable @keyup.enter="handleQuery" />
 							</el-form-item>
 							<el-form-item>
 								<el-button type="primary" @click="handleQuery" :loading="state.historyOrderLoading">
@@ -458,7 +458,7 @@
 								</template>
 							</el-table-column>
 							<el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip> </el-table-column>
-							<el-table-column prop="no" label="工单编" show-overflow-tooltip> </el-table-column>
+							<el-table-column prop="no" label="工单编" show-overflow-tooltip> </el-table-column>
 							<el-table-column prop="currentStepName" label="当前环节" show-overflow-tooltip></el-table-column>
 							<el-table-column prop="statusText" label="状态" width="70" fixed="right" align="center">
 								<template #default="{ row }">
@@ -965,11 +965,10 @@ const resetQuery = throttle((formEl: FormInstance | undefined) => {
 const searchHistory = throttle(async (orderDetail?: any) => {
 	if (!auth('business:order:history')) ElMessage.error('抱歉,您没有权限查询历史工单!');
 	else {
-		if (!state.ruleForm.fromPhone) return; // 如果没有来电号码 不进行查询
 		state.historyOrderLoading = true;
 		let request = {
 			...state.queryParams,
-			PhoneNo: state.ruleForm.fromPhone,
+			PhoneNo: state.ruleForm.contact,
 			OrderId: state.orderId, //传入id 排除重复工单选择自己
 		};
 		try {
@@ -1090,10 +1089,7 @@ onBeforeMount(async () => {
 			// 如果获取到id 调用查询详情
 			state.ruleForm = response.result;
 			orderDetailInfo.value = response.result;
-			if (state.ruleForm.sourceChannelCode === 'RGDH') {
-				// 来源渠道为电话查询历史工单
-				searchHistory(response);
-			}
+      searchHistory(response);
 			if (state.ruleForm.orderType === 1) {
 				// 工单类型 选择了12315市场监管受理单
 				state.acceptTypeOptions = state.acceptTypeOptions.map((item: any) => {

+ 5 - 42
src/views/business/order/backlog/index.vue

@@ -6,7 +6,7 @@
         <el-row :gutter="10">
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
             <el-form-item label="关键字" prop="Keyword">
-              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
@@ -30,7 +30,7 @@
       </div>
       <!-- 表格 -->
       <el-table :data="state.tableData" v-loading="state.loading" row-key="id" ref="multipleTableRef" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" />
+        <el-table-column type="selection" width="40" />
         <el-table-column prop="expiredText" label="工单超期间隔" show-overflow-tooltip width="120"></el-table-column>
         <el-table-column width="100" label="省/市工单" prop="isProvince" >
           <template #default="{ row }">
@@ -43,52 +43,15 @@
             <span class="color-primary">{{ row.title }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="工单状态" show-overflow-tooltip width="100">
-          <template #default="{ row }">
-            <!-- 草稿 -->
-            <span class="color-info" v-if="row.status === 0">{{ row.statusText }}</span>
-            <!-- 待签收 -->
-            <span class="color-success" v-if="row.status === 10">{{ row.statusText }}</span>
-            <!-- 办理中 -->
-            <span class="color-primary" v-if="row.status === 20">{{ row.statusText }}</span>
-            <!-- 会签中 -->
-            <span class="color-primary" v-if="row.status === 30">{{ row.statusText }}</span>
-            <!-- 退回 -->
-            <span class="color-danger" v-if="row.status === 40">{{ row.statusText }}</span>
-            <!-- 办理完成 -->
-            <span class="color-success" v-if="row.status === 50">{{ row.statusText }}</span>
-            <!-- 已归档 -->
-            <span class="color-info" v-if="row.status === 60">{{ row.statusText }}</span>
-          </template>
-        </el-table-column>
+        <el-table-column label="工单状态" show-overflow-tooltip width="100" prop="statusText"></el-table-column>
         <el-table-column prop="currentStepName" label="当前办理节点" show-overflow-tooltip width="150"></el-table-column>
-        <el-table-column prop="expiredTime" label="当前节点签收时间" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
         <el-table-column prop="acceptType" label="受理类型" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="expiredTime" label="期满时间" show-overflow-tooltip width="170">
+        <el-table-column prop="creationTime" label="生成时间" show-overflow-tooltip width="170">
           <template #default="{ row }">
-            <span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip width="150"></el-table-column>
-        <el-table-column label="紧急程度" show-overflow-tooltip prop="emergencyLevelText" width="100">
-          <template #default="{row}">
-						<span v-if="row.emergencyLevel === 2 || row.emergencyLevel === 3" class="color-danger">{{
-                row.emergencyLevelText
-              }}</span>
-            <span v-else class="color-primary">{{ row.emergencyLevelText }}</span>
+            <span>{{ formatDate(row.creationTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
         <el-table-column prop="sourceChannel" label="来源方式" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="actualHandleOrgName" label="接办部门" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptorName" label="受理人" show-overflow-tooltip width="120">
-          <template #default="{row}">
-            <span>{{ row.acceptorName}} <span v-if="row.acceptorStaffNo">[{{row.acceptorStaffNo}}]</span> </span>
-          </template>
-        </el-table-column>
         <el-table-column label="操作" width="100" fixed="right" align="center">
           <template #default="{ row }">
             <el-button link type="primary" @click="onOrderDetail(row)" title="查看工单详情" v-auth="'business:order:backlog:detail'"> 详情 </el-button>

+ 4 - 3
src/views/business/order/components/Order-detail.vue

@@ -89,7 +89,7 @@
 								<el-form-item label="受理类型"> {{ state.ruleForm.acceptType }} </el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6">
-								<el-form-item label="工单编"> {{ state.ruleForm.no }} </el-form-item>
+								<el-form-item label="工单编"> {{ state.ruleForm.no }} </el-form-item>
 							</el-col>
 							<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.fromProvinceNo">
 								<el-form-item label="省工单编码"> {{ state.ruleForm.fromProvinceNo }} </el-form-item>
@@ -316,7 +316,8 @@
 				<el-button type="primary" @click="onSupply" :loading="state.loading" v-if="state.workflow.status === 0" v-auth="'workflow:supply'"
 					>补 充</el-button
 				>
-				<el-button type="primary" @click="onUrge" :loading="state.loading" v-auth="'business:order:supervise:apply'">催 办</el-button>
+				<el-button type="primary" @click="onUrge" :loading="state.loading" v-auth="'business:order:supervise:apply'">
+          催 办</el-button>
         <el-button type="primary" @click="onSupervise" :loading="state.loading" v-auth="'business:order:urge:apply'">督 办</el-button>
 				<el-button type="primary" @click="onRevoke" :loading="state.loading" v-auth="'business:order:revoke'">撤 销</el-button>
 				<!-- 工单未归档都可以撤回 -->
@@ -348,7 +349,7 @@
 			<el-form label-width="90px" ref="ruleFormRef">
 				<el-row :gutter="35">
 					<el-col :xs="24" :sm="8" :md="8" :lg="8" :xl="8">
-						<el-form-item label="工单编"> {{ state.ruleForm.no }} </el-form-item>
+						<el-form-item label="工单编"> {{ state.ruleForm.no }} </el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="16" :md="16" :lg="16" :xl="16">
 						<el-form-item label="工单标题"> {{ state.ruleForm.title }} </el-form-item>

+ 2 - 2
src/views/business/order/components/Order-history.vue

@@ -2,7 +2,7 @@
 		<el-dialog v-model="state.dialogVisible" draggable title="历史工单" ref="dialogRef" width="60%" append-to-body>
 				<el-form :model="state.queryParams" ref="ruleFormRef" :inline="true" @submit.native.prevent>
 					<el-form-item label="关键词" prop="Keyword">
-						<el-input v-model="state.queryParams.Keyword" placeholder="工单标题/工单编" clearable @keyup.enter="handleQuery" />
+						<el-input v-model="state.queryParams.Keyword" placeholder="工单标题/工单编" clearable @keyup.enter="handleQuery" />
 					</el-form-item>
 					<el-form-item>
 						<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
@@ -17,7 +17,7 @@
 						</template>
 					</el-table-column>
 					<el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip> </el-table-column>
-					<el-table-column prop="no" label="工单编" show-overflow-tooltip> </el-table-column>
+					<el-table-column prop="no" label="工单编" show-overflow-tooltip> </el-table-column>
 					<el-table-column prop="currentStepName" label="当前环节" show-overflow-tooltip></el-table-column>
 					<el-table-column prop="statusText" label="状态" width="70" fixed="right" align="center">
 						<template #default="{row}">

+ 1 - 1
src/views/business/order/components/Order-repeat.vue

@@ -7,7 +7,7 @@
         </template>
       </el-table-column>
       <el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip> </el-table-column>
-      <el-table-column prop="no" label="工单编" show-overflow-tooltip> </el-table-column>
+      <el-table-column prop="no" label="工单编" show-overflow-tooltip> </el-table-column>
       <el-table-column prop="currentStepName" label="当前环节" show-overflow-tooltip></el-table-column>
       <el-table-column prop="statusText" label="状态" width="70" fixed="right" align="center">
         <template #default="{row}">

+ 5 - 0
src/views/business/order/components/Order-revoke.vue

@@ -9,6 +9,7 @@
 			append-to-body
       :before-close="handleClose"
       destroy-on-close
+      @close="close"
 		>
 			<el-form :model="state.ruleForm" label-width="90px" ref="ruleFormRef">
 				<el-row :gutter="35">
@@ -113,6 +114,10 @@ const closeDialog = () => {
   ruleFormRef.value.resetFields();
 	state.dialogVisible = false;
 };
+const close = ()=>{
+  ruleFormRef.value.clearValidate();
+  ruleFormRef.value.resetFields();
+}
 // 取消
 const onCancel = () => {
 	closeDialog();

+ 4 - 28
src/views/business/order/index.vue

@@ -5,7 +5,7 @@
 				<el-row :gutter="10">
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
 						<el-form-item label="关键字" prop="Keyword">
-							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
@@ -197,7 +197,7 @@
             <span>{{ row.isProvince ? '省工单' : '市工单' }}</span>
           </template>
         </el-table-column>
-				<el-table-column label="工单编" prop="no" show-overflow-tooltip width="150">
+				<el-table-column label="工单编" prop="no" show-overflow-tooltip width="150">
 					<template #default="{ row }">
 						<span>{{ row.no }}</span>
 					</template>
@@ -207,24 +207,7 @@
 						<span class="color-primary">{{ row.title }}</span>
 					</template>
 				</el-table-column>
-				<el-table-column label="工单状态" show-overflow-tooltip width="100">
-					<template #default="{ row }">
-            <!-- 草稿 -->
-            <span class="color-info" v-if="row.status === 0">{{ row.statusText }}</span>
-            <!-- 待签收 -->
-            <span class="color-success" v-if="row.status === 10">{{ row.statusText }}</span>
-            <!-- 办理中 -->
-            <span class="color-primary" v-if="row.status === 20">{{ row.statusText }}</span>
-            <!-- 会签中 -->
-            <span class="color-primary" v-if="row.status === 30">{{ row.statusText }}</span>
-            <!-- 退回 -->
-            <span class="color-danger" v-if="row.status === 40">{{ row.statusText }}</span>
-            <!-- 办理完成 -->
-            <span class="color-success" v-if="row.status === 50">{{ row.statusText }}</span>
-            <!-- 已归档 -->
-            <span class="color-info" v-if="row.status === 60">{{ row.statusText }}</span>
-					</template>
-				</el-table-column>
+        <el-table-column label="工单状态" show-overflow-tooltip width="100" prop="statusText"></el-table-column>
 				<el-table-column prop="currentStepName" label="当前办理节点" show-overflow-tooltip width="150"></el-table-column>
 				<el-table-column prop="actualHandlerName" label="接办人" show-overflow-tooltip width="150"></el-table-column>
 				<el-table-column prop="acceptType" label="受理类型" show-overflow-tooltip width="150"></el-table-column>
@@ -244,14 +227,7 @@
 					</template>
 				</el-table-column>
 				<el-table-column prop="hotspotName" label="热点分类" show-overflow-tooltip width="200"></el-table-column>
-				<el-table-column label="紧急程度" show-overflow-tooltip prop="emergencyLevelText" width="100">
-					<template #default="{ row }">
-						<span v-if="row.emergencyLevel === 2 || row.emergencyLevel === 3" class="color-danger">{{
-							row.emergencyLevelText
-						}}</span>
-						<span v-else class="color-primary">{{ row.emergencyLevelText }}</span>
-					</template>
-				</el-table-column>
+				<el-table-column label="紧急程度" show-overflow-tooltip prop="emergencyLevelText" width="100"></el-table-column>
 				<el-table-column prop="orgLevelOneName" label="一级部门" show-overflow-tooltip width="170"></el-table-column>
 				<el-table-column prop="sourceChannel" label="来源方式" show-overflow-tooltip></el-table-column>
 				<el-table-column prop="actualHandleOrgName" label="接办部门" show-overflow-tooltip width="170"></el-table-column>

+ 1 - 1
src/views/business/overdue/index.vue

@@ -13,7 +13,7 @@
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
             <el-form-item label="工单标题" prop="Keyword">
-              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
             </el-form-item>
           </el-col>
           <transition name="el-zoom-in-top">

+ 1 - 1
src/views/business/overdue/node/index.vue

@@ -13,7 +13,7 @@
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
             <el-form-item label="工单标题" prop="Keyword">
-              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
             </el-form-item>
           </el-col>
           <transition name="el-zoom-in-top">

+ 1 - 1
src/views/business/overdueSoon/index.vue

@@ -13,7 +13,7 @@
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
             <el-form-item label="工单标题" prop="Keyword">
-              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
             </el-form-item>
           </el-col>
           <transition name="el-zoom-in-top">

+ 1 - 1
src/views/business/overdueSoon/node/index.vue

@@ -13,7 +13,7 @@
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
             <el-form-item label="工单标题" prop="Keyword">
-              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
             </el-form-item>
           </el-col>
           <transition name="el-zoom-in-top">

+ 2 - 2
src/views/business/publish/backlog/index.vue

@@ -6,7 +6,7 @@
         <el-row :gutter="10">
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
             <el-form-item label="关键词" prop="Keyword">
-              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
@@ -28,7 +28,7 @@
       <!-- 表格 -->
       <el-table :data="state.tableData" v-loading="state.loading" row-key="id" ref="multipleTableRef" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55" :selectable="selectable"/>
-        <el-table-column prop="no" label="工单编" show-overflow-tooltip  width="150"></el-table-column>
+        <el-table-column prop="no" label="工单编" show-overflow-tooltip  width="150"></el-table-column>
         <el-table-column prop="no" label="是否会签件" show-overflow-tooltip width="100"></el-table-column>
         <el-table-column width="100" label="省/市工单" prop="isProvince" >
           <template #default="{ row }">

+ 4 - 4
src/views/business/publish/index.vue

@@ -6,7 +6,7 @@
 				<el-row :gutter="10">
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
 						<el-form-item label="关键词" prop="Keyword">
-							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
@@ -28,7 +28,7 @@
 			<!-- 表格 -->
 			<el-table :data="state.tableData" v-loading="state.loading" row-key="id" ref="multipleTableRef" @selection-change="handleSelectionChange">
 				<el-table-column type="selection" width="55" :selectable="selectable" />
-				<el-table-column prop="order.no" label="工单编" show-overflow-tooltip width="150"></el-table-column>
+				<el-table-column prop="order.no" label="工单编" show-overflow-tooltip width="150"></el-table-column>
 				<el-table-column prop="order.no" label="是否会签件" show-overflow-tooltip width="100"></el-table-column>
 				<el-table-column width="100" label="省/市工单" prop="isProvince">
 					<template #default="{ row }">
@@ -65,9 +65,9 @@
 				</el-table-column>
 				<el-table-column prop="publishMan" label="发布人" show-overflow-tooltip width="120"></el-table-column>
 				<el-table-column prop="order.statusText" label="发布状态" show-overflow-tooltip width="100"></el-table-column>
-				<el-table-column prop="isPublicity" label="是否公开" show-overflow-tooltip width="100">
+				<el-table-column prop="publishState" label="是否公开" show-overflow-tooltip width="100">
 					<template #default="{ row }">
-						<span>{{ row.isPublicity ? '公开' : '不公开' }}</span>
+						<span>{{ row.publishState ? '公开' : '不公开' }}</span>
 					</template>
 				</el-table-column>
 				<el-table-column label="操作" width="180" fixed="right" align="center">

+ 1 - 1
src/views/business/redo/index.vue

@@ -6,7 +6,7 @@
 				<el-row :gutter="10">
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
 						<el-form-item label="关键字" prop="Keyword">
-							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
 						</el-form-item>
 					</el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">

+ 1 - 1
src/views/business/return/backlog/index.vue

@@ -13,7 +13,7 @@
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
 						<el-form-item label="工单标题" prop="Keyword">
-							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
 						</el-form-item>
 					</el-col>
 					<transition name="el-zoom-in-top">

+ 1 - 1
src/views/business/return/index.vue

@@ -13,7 +13,7 @@
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
             <el-form-item label="工单标题" prop="Keyword">
-              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
             </el-form-item>
           </el-col>
           <transition name="el-zoom-in-top">

+ 1 - 1
src/views/business/revocation/index.vue

@@ -5,7 +5,7 @@
         <el-row :gutter="10">
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
             <el-form-item label="关键词" prop="Keyword">
-              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">

+ 3 - 1
src/views/business/supervise/backlog/index.vue

@@ -6,7 +6,7 @@
 				<el-row :gutter="10">
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
 						<el-form-item label="关键字" prop="Keyword">
-							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+							<el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
@@ -28,6 +28,7 @@
             <span class="color-primary">{{ row.order.title }}</span>
           </template>
         </el-table-column>
+        <el-table-column prop="order.statusText" label="工单状态" show-overflow-tooltip></el-table-column>
         <el-table-column prop="order.sourceChannel" label="来源方式" show-overflow-tooltip></el-table-column>
         <el-table-column width="100" label="省/市工单" prop="isProvince" >
           <template #default="{ row }">
@@ -35,6 +36,7 @@
           </template>
         </el-table-column>
         <el-table-column prop="order.acceptType" label="受理类型" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="order.hotspotName" label="热点分类" show-overflow-tooltip width="120"></el-table-column>
         <el-table-column prop="acceptorName" label="受理人" show-overflow-tooltip width="120">
           <template #default="{ row }">
             <span>{{ row.order?.acceptorName}} <span v-if="row.order?.acceptorStaffNo">[{{row.order?.acceptorStaffNo}}]</span> </span>

+ 88 - 20
src/views/business/supervise/components/Order-supervise-detail.vue

@@ -4,9 +4,11 @@
       draggable
       title="督办详情"
       ref="dialogRef"
+      @mouseup="mouseup"
+      :style="'transform: ' + state.transform + ';'"
       width="50%"
       destroy-on-close
-      :before-close="handleClose"
+      @close="close"
   >
     <div class="collapse-container pb1">
       <el-form label-width="110px" ref="ruleFormRef" :model="state.ruleForm">
@@ -34,21 +36,50 @@
             <el-form-item label="被督办部门">{{ state.superviseDetail.orgName }}</el-form-item>
           </el-col>
           <el-divider content-position="left"> <span class="font16 font-bold">回复内容</span> </el-divider>
-          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-            <el-form-item label="督办回复时间"> {{formatDate(state.superviseDetail.replyTime, 'YYYY-mm-dd HH:MM:SS')}} </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-            <el-form-item label="督办回复内容"> {{ state.superviseDetail.replyContent }} </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-auth="'file:list'">
-            <el-form-item label="附件" prop="handleResult" :rules="[{ required: false, message: '请选择附件', trigger: 'change' }]">
-              <annex-list name="查看附件" readonly :businessId="state.superviseDetail.id" classify="督办回复"/>
-            </el-form-item>
-          </el-col>
+          <template v-if="isReply">
+            <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+              <el-form-item label="督办回复时间"> {{formatDate(Date(), 'YYYY-mm-dd HH:MM:SS')}} </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+              <el-form-item label="督办回复内容" prop="replyContent" :rules="[{ required: true, message: '请填写督办回复内容', trigger: 'blur' }]">
+                <common-advice
+                    @chooseAdvice="chooseAdvice"
+                    v-model="state.ruleForm.replyContent"
+                    placeholder="请填写督办回复内容"
+                    :loading="state.loading"
+                    :commonEnum="commonEnum.Supervise"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+              <el-form-item label="附件" prop="handleResult" :rules="[{ required: false, message: '请选择附件', trigger: 'change' }]">
+                <annex-list name="督办回复附件" ref="annexListRef" businessId="" classify="督办回复" />
+              </el-form-item>
+            </el-col>
+          </template>
+          <template v-else>
+            <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+              <el-form-item label="督办回复时间"> {{formatDate(state.superviseDetail.replyTime, 'YYYY-mm-dd HH:MM:SS')}} </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+              <el-form-item label="督办回复内容"> {{ state.superviseDetail.replyContent }} </el-form-item>
+            </el-col>
+            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-auth="'file:list'">
+              <el-form-item label="附件" prop="handleResult" :rules="[{ required: false, message: '请选择附件', trigger: 'change' }]">
+                <annex-list name="查看附件" readonly :businessId="state.superviseDetail.id" classify="督办回复"/>
+              </el-form-item>
+            </el-col>
+          </template>
         </el-row>
       </el-form>
     </div>
-    <template #footer>
+    <template #footer  v-if="isReply">
+			<span class="dialog-footer">
+				<el-button @click="onCancel" class="default-button">取 消</el-button>
+				<el-button type="primary" @click="onSubmit(ruleFormRef)" :loading="state.loading">回复</el-button>
+			</span>
+    </template>
+    <template #footer v-else>
 			<span class="dialog-footer">
 				<el-button @click="onCancel" class="default-button">关 闭</el-button>
 			</span>
@@ -58,7 +89,9 @@
 <script setup lang="ts" name="businessSuperviseDetailDialog">
 import { defineAsyncComponent, reactive, ref } from 'vue';
 import { formatDate } from '/@/utils/formatTime';
-import {superviseDetail} from "/@/api/business/supervise";
+import {superviseDetail, superviseReply} from "/@/api/business/supervise";
+import {ElMessage, FormInstance} from "element-plus";
+import {commonEnum} from "/@/utils/constants";
 
 // 引入组件
 const AnnexList = defineAsyncComponent(() => import('/@/components/AnnexList/index.vue'));
@@ -76,33 +109,68 @@ const state = reactive<any>({
     applyContent: '', // 督办内容
   },
   superviseDetail: {}, // 督办详情
+  transform: 'translate(0px, 0px)', // 滚动条位置
   orderDetail: {}, // 工单详情
   orgData:[],// 被督办部门
 });
 const ruleFormRef = ref<RefType>();
+const isReply = ref<boolean | undefined>(false);
 const getDetail = async (id:string)=>{
   let res = await superviseDetail(id);
   state.superviseDetail = res.result ?? {};
   state.orderDetail = res.result?.order ?? {};
   state.dialogVisible = true;
 }
+// 设置抽屉
+const dialogRef = ref<RefType>();
+const mouseup = () => {
+  state.transform = dialogRef.value.dialogContentRef.$el.style.transform;
+};
 // 打开弹窗
-const openDialog = (val: any) => {
+const openDialog = (val: any,reply?:boolean) => {
+  isReply.value = reply;
   getDetail(val.id);
 };
 // 关闭弹窗
 const closeDialog = () => {
   state.dialogVisible = false;
-  ruleFormRef.value.clearValidate();
-  ruleFormRef.value.resetFields();
 };
 // 取消
 const onCancel = () => {
   closeDialog();
 };
-const handleClose = (done: any) => {
-  closeDialog();
-  done();
+// 选中常用意见
+const chooseAdvice = (item: any) => {
+  state.ruleForm.content += item.content;
+};
+// 回复
+const annexListRef = ref<RefType>(); // 附件列表
+const onSubmit = (formEl: FormInstance | undefined) => {
+  if (!formEl) return;
+  formEl.validate((valid: boolean) => {
+    if (!valid) return;
+    state.loading = true;
+    let request = {
+      id: state.superviseDetail.id,
+      replyId: state.superviseDetail.replyId,
+      files: annexListRef.value?.fileList,
+      replyContent: state.ruleForm.replyContent,
+    };
+    superviseReply(request)
+        .then((res: any) => {
+          state.loading = false;
+          closeDialog();
+          emit('updateList');
+          ElMessage.success('操作成功');
+        })
+        .catch(() => {
+          state.loading = false;
+        });
+  });
+};
+const close = () => {
+  ruleFormRef.value.clearValidate();
+  ruleFormRef.value.resetFields();
 };
 defineExpose({
   openDialog,

+ 5 - 7
src/views/business/supervise/components/Order-supervise-reply.vue

@@ -9,7 +9,7 @@
 		width="50%"
 		append-to-body
 		destroy-on-close
-		:before-close="handleClose"
+		@close="close"
 	>
 		<div class="collapse-container pb1">
 			<el-form label-width="110px" ref="ruleFormRef" :model="state.ruleForm">
@@ -60,7 +60,7 @@
 		<template #footer>
 			<span class="dialog-footer">
 				<el-button @click="onCancel" class="default-button">取 消</el-button>
-				<el-button type="primary" @click="onSubmit(ruleFormRef)" :loading="state.loading" v-auth="'business:order:delay'">提交</el-button>
+				<el-button type="primary" @click="onSubmit(ruleFormRef)" :loading="state.loading">提交</el-button>
 			</span>
 		</template>
 	</el-dialog>
@@ -118,16 +118,14 @@ const openDialog = (val: any) => {
 // 关闭弹窗
 const closeDialog = () => {
 	state.dialogVisible = false;
-	ruleFormRef.value.clearValidate();
-	ruleFormRef.value.resetFields();
 };
 // 取消
 const onCancel = () => {
 	closeDialog();
 };
-const handleClose = (done: any) => {
-	closeDialog();
-	done();
+const close = () => {
+  ruleFormRef.value.clearValidate();
+  ruleFormRef.value.resetFields();
 };
 // 选中常用意见
 const chooseAdvice = (item: any) => {

+ 13 - 21
src/views/business/supervise/index.vue

@@ -13,7 +13,7 @@
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
             <el-form-item label="工单标题" prop="Keyword">
-              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
@@ -38,7 +38,7 @@
         <el-table-column prop="order.no" label="工单编号" show-overflow-tooltip width="150"></el-table-column>
         <el-table-column width="100" label="省/市工单" prop="isProvince" >
           <template #default="{ row }">
-            <span>{{ row.order.isProvince ? '省工单' : '市工单' }}</span>
+            <span>{{ row.order?.isProvince ? '省工单' : '市工单' }}</span>
           </template>
         </el-table-column>
         <el-table-column label="标题" show-overflow-tooltip width="300">
@@ -46,6 +46,11 @@
             <span class="color-primary">{{ row.order.title }}</span>
           </template>
         </el-table-column>
+        <el-table-column prop="creatorOrgName" label="督办状态" show-overflow-tooltip width="80">
+          <template #default="{ row }">
+            <span>{{ row.state == 0 ? '未回复' : '已回复' }}</span>
+          </template>
+        </el-table-column>
         <el-table-column prop="order.statusText" label="工单状态" show-overflow-tooltip></el-table-column>
         <el-table-column prop="order.acceptType" label="受理类型" show-overflow-tooltip></el-table-column>
         <el-table-column prop="order.hotspotName" label="热点分类" show-overflow-tooltip width="120"></el-table-column>
@@ -57,17 +62,17 @@
         <el-table-column prop="order.actualHandleOrgName" label="接办部门" show-overflow-tooltip></el-table-column>
         <el-table-column prop="startTime" label="受理时间" show-overflow-tooltip width="170">
           <template #default="{ row }">
-            <span>{{ formatDate(row.order.startTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+            <span>{{ formatDate(row.order?.startTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
         <el-table-column prop="expiredTime" label="工单期满时间" show-overflow-tooltip width="170">
           <template #default="{ row }">
-            <span>{{ formatDate(row.order.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+            <span>{{ formatDate(row.order?.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
         <el-table-column prop="creationTime" label="督办时间" show-overflow-tooltip width="170">
           <template #default="{ row }">
-            <span>{{ formatDate(row.order.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+            <span>{{ formatDate(row.order?.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
         <el-table-column prop="replyLimitTime" label="督办回复时限" show-overflow-tooltip width="170">
@@ -75,11 +80,6 @@
             <span>{{ formatDate(row.replyLimitTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="creatorOrgName" label="督办状态" show-overflow-tooltip width="80">
-          <template #default="{ row }">
-            <span>{{ row.state == 0 ? '未回复' : '已回复' }}</span>
-          </template>
-        </el-table-column>
         <el-table-column prop="creatorOrgName" label="督办部门" show-overflow-tooltip width="150"></el-table-column>
         <el-table-column prop="crUser" label="督办人" show-overflow-tooltip width="150"></el-table-column>
         <el-table-column prop="orgName" label="被督办部门" show-overflow-tooltip width="150"></el-table-column>
@@ -95,9 +95,8 @@
             <span>{{ formatDate(row.signTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="操作" width="150" fixed="right" align="center">
+        <el-table-column label="操作" width="100" fixed="right" align="center">
           <template #default="{ row }">
-            <el-button link type="primary" @click="onReply(row)" title="回复督办" v-auth="'business:supervise:reply'" v-if="row.state == 0"> 回复 </el-button>
             <el-button link type="primary" @click="onDetail(row)" title="查看督办详情" v-auth="'business:supervise:detail'" > 查看详情 </el-button>
           </template>
         </el-table-column>
@@ -113,8 +112,6 @@
           @pagination="queryList"
       />
     </el-card>
-    <!-- 督办回复 -->
-    <order-supervise-reply ref="orderSuperviseReplyRef" @updateList="queryList" />
     <!-- 督办详情 -->
     <order-supervise-detail ref="orderSuperviseDetailRef" @updateList="queryList" />
   </div>
@@ -127,7 +124,6 @@ import { throttle, } from '/@/utils/tools';
 import { formatDate } from '/@/utils/formatTime';
 import { superviseList } from '/@/api/business/supervise';
 // 引入组件
-const OrderSuperviseReply = defineAsyncComponent(() => import('/src/views/business/supervise/components/Order-supervise-reply.vue')); // 回复督办
 const OrderSuperviseDetail = defineAsyncComponent(() => import('/src/views/business/supervise/components/Order-supervise-detail.vue')); // 督办详情
 
 // 定义变量内容
@@ -187,15 +183,11 @@ const handleSelectionChange = (val: any[]) => {
 const onExport = () => {
   console.log('导出');
 };
-// 回复
-const orderSuperviseReplyRef = ref<RefType>()
-const onReply = (row: any) => {
-  orderSuperviseReplyRef.value.openDialog(row)
-};
 // 查看督办详情
 const orderSuperviseDetailRef = ref<RefType>();
 const onDetail = (row: any) => {
-  orderSuperviseDetailRef.value.openDialog(row)
+  const isReply = row.state == 0;//是回复还是查看详情
+  orderSuperviseDetailRef.value.openDialog(row,isReply)
 };
 onMounted(() => {
   queryList();

+ 0 - 161
src/views/business/urge/backlog/index.vue

@@ -1,161 +0,0 @@
-<template>
-	<div class="business-supervise-backlog-container layout-pd">
-		<!-- 搜索  -->
-		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent class="mt15" label-width="100px">
-				<el-row :gutter="10">
-					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
-						<el-form-item label="关键字" prop="Keyword">
-							<el-input v-model="state.queryParams.Keyword" placeholder="工单编码/标题" clearable @keyup.enter="queryList" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
-            <el-form-item label=" ">
-                <el-button type="primary" @click="queryList" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
-                <el-button @click="resetQuery(ruleFormRef)" v-waves class="default-button" :loading="state.loading"> <SvgIcon name="ele-Refresh" class="mr5" />重置 </el-button>
-            </el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-		</el-card>
-		<el-card shadow="never">
-			<!-- 表格 -->
-			<el-table :data="state.tableData" v-loading="state.loading" row-key="id" ref="multipleTableRef" @selection-change="handleSelectionChange">
-        <el-table-column type="selection" width="55" />
-        <el-table-column prop="order.no" label="工单编号" show-overflow-tooltip width="150"></el-table-column>
-        <el-table-column label="工单标题" show-overflow-tooltip width="400">
-          <template #default="{ row }">
-            <span class="color-primary">{{ row.order.title }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="order.sourceChannel" label="来源方式" show-overflow-tooltip></el-table-column>
-        <el-table-column width="100" label="省/市工单" prop="isProvince" >
-          <template #default="{ row }">
-            <span>{{ row.order.isProvince ? '省工单' : '市工单' }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="order.acceptType" label="受理类型" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="acceptorName" label="受理人" show-overflow-tooltip width="120">
-          <template #default="{ row }">
-            <span>{{ row.order?.acceptorName}} <span v-if="row.order?.acceptorStaffNo">[{{row.order?.acceptorStaffNo}}]</span> </span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="order.actualHandleOrgName" label="接办部门" show-overflow-tooltip width="150"></el-table-column>
-        <el-table-column prop="startTime" label="受理时间" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ formatDate(row.order.startTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="order.expiredTime" label="期满时间" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ formatDate(row.order.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="creationTime" label="催办时间" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ formatDate(row.creationTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="replyLimitTime" label="催办回复时限" show-overflow-tooltip width="170">
-          <template #default="{ row }">
-            <span>{{ formatDate(row.replyLimitTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="creatorOrgName" label="催办部门" show-overflow-tooltip width="150"></el-table-column>
-        <el-table-column prop="crUser" label="催办人" show-overflow-tooltip width="120"></el-table-column>
-        <el-table-column prop="orgName" label="被催办部门" show-overflow-tooltip width="150"></el-table-column>
-        <el-table-column prop="applyContent" label="催办意见" show-overflow-tooltip></el-table-column>
-				<el-table-column label="操作" width="80" fixed="right" align="center">
-					<template #default="{ row }">
-						<el-button link type="primary" @click="approve(row)" title="回复催办" v-auth="'business:urge:backlog:reply'"> 回复 </el-button>
-					</template>
-				</el-table-column>
-				<template #empty>
-					<Empty />
-				</template>
-			</el-table>
-			<!-- 分页 -->
-			<pagination
-				:total="state.total"
-				v-model:page="state.queryParams.PageIndex"
-				v-model:limit="state.queryParams.PageSize"
-				@pagination="queryList"
-			/>
-		</el-card>
-    <!-- 催办回复 -->
-    <order-urge-reply ref="orderUrgeReplyRef" @updateList="queryList" />
-	</div>
-</template>
-<script setup lang="ts" name="orderUrgeBacklog">
-import { onMounted, reactive, ref,defineAsyncComponent } from 'vue';
-import { ElButton, ElMessage, FormInstance } from 'element-plus';
-import { auth } from '/@/utils/authFunction';
-import { throttle } from '/@/utils/tools';
-import { formatDate } from '/@/utils/formatTime';
-import {urgeList} from "/@/api/business/urge";
-// 引入组件
-const OrderUrgeReply = defineAsyncComponent(() => import('/@/views/business/urge/components/Order-urge-reply.vue')); // 回复督办
-// 定义变量内容
-const ruleFormRef = ref<RefType>(); // 表单ref
-const state = reactive(<any>{
-	queryParams: {
-		// 查询条件
-		PageIndex: 1,
-		PageSize: 10,
-		Keyword: '', // 关键字
-    SuperviseState: '0', // 未回复催办
-	},
-	tableData: [], //表单
-	loading: false, // 加载
-	total: 0, // 总数
-	channelOptions: [], // 来源频道
-	emergencyLevelOptions: [], // 紧急程度
-	orderStatusOptions: [], // 工单状态
-	orgsOptions: [], // 部门
-	pushTypeOptions: [], //推送分类
-	orgData: [], // 机构数据
-});
-/** 获取列表 */
-const queryList = throttle(() => {
-	if (!auth('business:urge:backlog:query')) ElMessage.error('抱歉,您没有权限查看催办待办!');
-	else {
-    urgeList(state.queryParams).then((res: any) => {
-      state.tableData = res.result?.items ?? [];
-      state.total = res.result?.total ?? 0;
-      state.loading = false;
-    }).catch((err: any) => {
-      state.loading = false;
-    })
-	}
-}, 500);
-/** 重置按钮操作 */
-const resetQuery = throttle((formEl: FormInstance | undefined) => {
-	if (!formEl) return;
-	formEl.resetFields();
-	queryList();
-}, 500);
-// 表格多选
-const multipleTableRef = ref<RefType>();
-const multipleSelection = ref<any>([]);
-const handleSelectionChange = (val: any[]) => {
-	multipleSelection.value = val;
-};
-// 导出
-const onExport = () => {
-	console.log('导出');
-};
-// 催办回复
-const orderUrgeReplyRef = ref<RefType>();
-const approve = (row: any) => {
-  orderUrgeReplyRef.value.openDialog(row)
-};
-onMounted( () => {
-	queryList();
-});
-</script>
-
-<style scoped lang="scss">
-.business-supervise-backlog-container {
-
-}
-</style>

+ 14 - 10
src/views/business/urge/components/Order-urge-detail.vue

@@ -2,8 +2,7 @@
 	<el-dialog v-model="state.dialogVisible" draggable title="催办详情" ref="dialogRef" width="50%" destroy-on-close :before-close="handleClose">
 		<div class="collapse-container pb1">
 			<el-form label-width="110px" ref="ruleFormRef" :model="state.ruleForm">
-				<el-row :gutter="35">
-					<el-divider content-position="left"> <span class="font16 font-bold">催办内容</span> </el-divider>
+				<el-row :gutter="10">
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 						<el-form-item label="工单编号"> {{ state.orderDetail.no }} </el-form-item>
 					</el-col>
@@ -25,13 +24,6 @@
 					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
 						<el-form-item label="被催办部门">{{ state.urgeDetail.orgName }}</el-form-item>
 					</el-col>
-					<el-divider content-position="left"> <span class="font16 font-bold">回复内容</span> </el-divider>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="催办回复时间"> {{ formatDate(state.urgeDetail.replyTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-						<el-form-item label="催办回复内容"> {{ state.urgeDetail.replyContent }} </el-form-item>
-					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-auth="'file:list'">
 						<el-form-item label="附件" prop="handleResult" :rules="[{ required: false, message: '请选择附件', trigger: 'change' }]">
 							<annex-list name="查看附件" readonly :businessId="state.urgeDetail.id" classify="催办回复" />
@@ -50,7 +42,8 @@
 <script setup lang="ts" name="businessUrgeDetailDialog">
 import { defineAsyncComponent, reactive, ref } from 'vue';
 import { formatDate } from '/@/utils/formatTime';
-import { urgeDetail } from '/@/api/business/urge';
+import {urgeDetail, urgeSign} from '/@/api/business/urge';
+import {ElMessage} from "element-plus";
 
 // 引入组件
 const AnnexList = defineAsyncComponent(() => import('/@/components/AnnexList/index.vue'));
@@ -78,9 +71,20 @@ const getDetail = async (id: string) => {
 	state.orderDetail = res.result?.order ?? {};
 	state.dialogVisible = true;
 };
+// 催办签收
+const onSign = (id: string) => {
+  urgeSign({ id }).then(() => {
+    ElMessage.success('签收成功');
+    emit('updateList');
+  });
+};
 // 打开弹窗
 const openDialog = (val: any) => {
 	getDetail(val.id);
+  if (!val.signTime) {
+    // 如果没有签收时间签收
+    onSign(val.id);
+  }
 };
 // 关闭弹窗
 const closeDialog = () => {

+ 0 - 172
src/views/business/urge/components/Order-urge-reply.vue

@@ -1,172 +0,0 @@
-<template>
-	<el-dialog
-		v-model="state.dialogVisible"
-		draggable
-		title="催办回复"
-		@mouseup="mouseup"
-		:style="'transform: ' + state.transform + ';'"
-		ref="dialogRef"
-		width="50%"
-		append-to-body
-		destroy-on-close
-		:before-close="handleClose"
-	>
-		<div class="collapse-container pb1">
-			<el-form label-width="110px" ref="ruleFormRef" :model="state.ruleForm">
-				<el-row :gutter="35">
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="工单编号"> {{ state.orderDetail.no }} </el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="工单标题"> {{ state.orderDetail.title }} </el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="催办人"> {{ state.urgeDetail.crUser }} </el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="催办部门"> {{ state.urgeDetail.creatorOrgName }} </el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="催办时间"> {{ formatDate(state.urgeDetail.creationTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="催办回复时限"> {{ formatDate(state.urgeDetail.replyLimitTime, 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
-						<el-form-item label="被催办部门">{{ state.urgeDetail.orgName }}</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-						<el-form-item label="催办回复时间"> {{ formatDate(Date(), 'YYYY-mm-dd HH:MM:SS') }} </el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-						<el-form-item label="催办回复内容" prop="replyContent" :rules="[{ required: true, message: '请填写催办回复内容', trigger: 'blur' }]">
-							<common-advice
-								@chooseAdvice="chooseAdvice"
-								v-model="state.ruleForm.replyContent"
-								placeholder="请填写催办回复内容"
-								:loading="state.loading"
-								:commonEnum="commonEnum.Supervise"
-							/>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-						<el-form-item label="附件" prop="handleResult" :rules="[{ required: false, message: '请选择附件', trigger: 'change' }]">
-							<annex-list name="催办回复附件" ref="annexListRef" businessId="" classify="催办回复" />
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-		</div>
-		<template #footer>
-			<span class="dialog-footer">
-				<el-button @click="onCancel" class="default-button">取 消</el-button>
-				<el-button type="primary" @click="onSubmit(ruleFormRef)" :loading="state.loading" v-auth="'business:urge:reply'">提交</el-button>
-			</span>
-		</template>
-	</el-dialog>
-</template>
-<script setup lang="ts" name="businessUrgeReplyDialog">
-import { defineAsyncComponent, reactive, ref } from 'vue';
-import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
-import { formatDate } from '/@/utils/formatTime';
-import { commonEnum } from '/@/utils/constants';
-import { urgeReply, urgeDetail, urgeSign } from '/@/api/business/urge';
-
-// 引入组件
-const AnnexList = defineAsyncComponent(() => import('/@/components/AnnexList/index.vue'));
-const CommonAdvice = defineAsyncComponent(() => import('/@/components/CommonAdvice/index.vue')); // 常用意见
-
-// 定义子组件向父组件传值/事件
-const emit = defineEmits(['updateList']);
-// 定义变量内容
-const state = reactive<any>({
-	collapseArr: ['1', '2'], // 折叠面板
-	dialogVisible: false, // 是否显示弹窗
-	loading: false, // 是否显示加载
-	ruleForm: {
-		acceptSms: false, // 发送催办短信
-		replyContent: '', // 催办回复内容
-	},
-	urgeDetail: {}, // 催办详情
-	orderDetail: {}, // 工单详情
-	transform: 'translate(0px, 0px)', // 滚动条位置
-	orgData: [], // 被催办部门
-});
-const ruleFormRef = ref<RefType>();
-// 查询催办详情
-const getDetail = async (id: string) => {
-	let res = await urgeDetail(id);
-	state.urgeDetail = res.result ?? {};
-	state.orderDetail = res.result?.order ?? {};
-	state.dialogVisible = true;
-};
-// 催办签收
-const onSign = (id: string) => {
-	urgeSign({ id }).then(() => {
-		ElMessage.success('签收成功');
-		emit('updateList');
-	});
-};
-// 打开弹窗
-const openDialog = (val: any) => {
-	getDetail(val.id);
-	if (!val.signTime) {
-		// 如果没有签收时间签收
-		onSign(val.id);
-	}
-};
-// 关闭弹窗
-const closeDialog = () => {
-	state.dialogVisible = false;
-	ruleFormRef.value.clearValidate();
-	ruleFormRef.value.resetFields();
-};
-// 取消
-const onCancel = () => {
-	closeDialog();
-};
-const handleClose = (done: any) => {
-	closeDialog();
-	done();
-};
-// 选中常用意见
-const chooseAdvice = (item: any) => {
-	state.ruleForm.content += item.content;
-};
-// 设置抽屉
-const dialogRef = ref<RefType>();
-const mouseup = () => {
-	state.transform = dialogRef.value.dialogContentRef.$el.style.transform;
-};
-// 提交
-const annexListRef = ref<RefType>(); // 附件列表
-const onSubmit = (formEl: FormInstance | undefined) => {
-	if (!formEl) return;
-	formEl.validate((valid: boolean) => {
-		if (!valid) return;
-		state.loading = true;
-		let request = {
-			id: state.urgeDetail.id,
-			replyId: state.urgeDetail.replyId,
-			files: annexListRef.value?.fileList,
-			replyContent: state.ruleForm.replyContent,
-		};
-		urgeReply(request)
-			.then((res: any) => {
-				state.loading = false;
-				closeDialog();
-				emit('updateList');
-				ElMessage.success('操作成功');
-			})
-			.catch(() => {
-				state.loading = false;
-			});
-	});
-};
-defineExpose({
-	openDialog,
-	closeDialog,
-});
-</script>
-
-<style lang="scss" scoped></style>

+ 2 - 11
src/views/business/urge/index.vue

@@ -13,7 +13,7 @@
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
             <el-form-item label="工单标题" prop="Keyword">
-              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
+              <el-input v-model="state.queryParams.Keyword" placeholder="工单编/标题" clearable @keyup.enter="queryList" />
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="8">
@@ -91,9 +91,8 @@
             <span>{{ formatDate(row.signTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="操作" width="150" fixed="right" align="center">
+        <el-table-column label="操作" width="100" fixed="right" align="center">
           <template #default="{ row }">
-            <el-button link type="primary" @click="onReply(row)" title="回复督办" v-auth="'business:urge:reply'" v-if="row.state == 0"> 回复 </el-button>
             <el-button link type="primary" @click="onDetail(row)" title="查看工单详情" v-auth="'business:urge:detail'"> 催办详情 </el-button>
           </template>
         </el-table-column>
@@ -109,8 +108,6 @@
           @pagination="queryList"
       />
     </el-card>
-    <!-- 催办回复 -->
-    <order-urge-reply ref="orderUrgeReplyRef" @updateList="queryList" />
     <!-- 催办详情 -->
     <order-urge-detail ref="orderUrgeDetailRef" @updateList="queryList" />
   </div>
@@ -123,7 +120,6 @@ import { throttle, } from '/@/utils/tools';
 import { formatDate } from '/@/utils/formatTime';
 import {urgeList} from "/@/api/business/urge";
 // 引入组件
-const OrderUrgeReply = defineAsyncComponent(() => import('/@/views/business/urge/components/Order-urge-reply.vue')); // 回复催办
 const OrderUrgeDetail = defineAsyncComponent(() => import('/@/views/business/urge/components/Order-urge-detail.vue')); // 催办详情
 
 // 定义变量内容
@@ -182,11 +178,6 @@ const handleSelectionChange = (val: any[]) => {
 const onExport = () => {
   console.log('导出');
 };
-// 回复
-const orderUrgeReplyRef = ref<RefType>();
-const onReply = (row: any) => {
-  orderUrgeReplyRef.value.openDialog(row)
-};
 // 查看催办详情
 const orderUrgeDetailRef = ref<RefType>(); // 催办详情
 const onDetail = (row: any) => {

+ 1 - 1
src/views/home/component/Backlog-list.vue

@@ -2,7 +2,7 @@
 
 <template>
   <div class="list-content box w100 mb20" style="position: relative" v-loading="state.tableLoading">
-    <el-button link type="primary" style="position: absolute;right: 30px;top:20px;z-index:2" @click="linkList">
+    <el-button link type="primary" style="position: absolute;right: 20px;top:32px;z-index:2" @click="linkList">
       更多<SvgIcon name="ele-ArrowRight" class="ml3"/>
     </el-button>
     <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">

+ 5 - 4
src/views/system/config/workflow/index.vue

@@ -433,18 +433,19 @@ const configClear = (row:any)=>{
       })
       .catch(() => {});
 }
+const params = history.state;
 onMounted(async () => {
 	queryList();
 	// 获取页面基础信息
 	const res: any = await baseData();
 	state.moduleOptions = res.result?.moduleOptions ?? [];
-  if(route.query.tabIndex){
-    state.activeName = route.query.tabIndex as string;
+  if(params.index){
+    state.activeName = params.index as string;
   }
 });
 onActivated(() => {
-  if(route.query.tabIndex){
-    state.activeName = route.query.tabIndex as string;
+  if(params.index){
+    state.activeName = params.index as string;
   }
 });
 </script>