Browse Source

reactor:首页用户信息调整

zhangchong 1 year ago
parent
commit
a1634a8406

+ 0 - 5
.eslintignore

@@ -8,8 +8,3 @@ node_modules
 .vscode
 .idea
 dist
-mock
-public
-config
-index.html
-src/assets

+ 11 - 0
src/api/business/delay.ts

@@ -45,4 +45,15 @@ export const delalDetail = (id: string) => {
         url: `/api/v1/Order/delay/${id}`,
         method: 'get'
     });
+};
+/**
+ * @description 延期计算期满时间
+ * @param {object} data
+ */
+export const delayCalcEndTime = (data: object) => {
+    return request({
+        url: `/api/v1/Order/delay-calc-endtime`,
+        method: 'post',
+        data
+    });
 };

+ 20 - 0
src/api/business/discern.ts

@@ -32,4 +32,24 @@ export const delayList = (id: string) => {
         url: `/api/v1/Order/screen/${id}`,
         method: 'get',
     });
+};
+/**
+ * @description 发起甄别(申请甄别)开启流程
+ * @param {object} data
+ */
+export const discernApply = (data: object) => {
+    return request({
+        url: `/api/v1/Order/screen/startflow`,
+        method: 'post',
+        data
+    });
+};
+/**
+ * @description 查询工单甄别流程开启参数
+ */
+export const workflowDiscernParams = () => {
+    return request({
+        url: `/api/v1/Order/screen/startflow`,
+        method: 'get'
+    });
 };

+ 44 - 10
src/components/ProcessApproval/index.vue

@@ -52,7 +52,7 @@
                         @input="computeTime"
 											></el-input-number>
 									</el-col>
-									<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+									<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-loading="state.loading">
 										<el-form-item
 											label=""
 											label-width="0"
@@ -68,7 +68,7 @@
 							</el-form-item>
 						</el-col>
 						<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-							<el-form-item label="延期后期满时间"> {{ state.delayForm.title }} </el-form-item>
+							<el-form-item label="延期后期满时间"> {{ state.delayForm.endTime }} </el-form-item>
 						</el-col>
 						<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 							<el-form-item label="申请理由" prop="content" :rules="[{ required: true, message: '请填写延期申请理由', trigger: 'blur' }]">
@@ -106,9 +106,9 @@
 							<el-form-item label="申请时间"> {{ formatDate(Date(), '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="申请类型" prop="unit" :rules="[{ required: true, message: '请选择申请类型', trigger: 'change' }]">
-								<el-select v-model="state.discernForm.unit" placeholder="请选择申请类型" clearable class="w100">
-									<el-option v-for="item in channelOptions" :value="item.key" :key="item.key" :label="item.value" />
+							<el-form-item label="申请类型" prop="type" :rules="[{ required: true, message: '请选择申请类型', trigger: 'change' }]">
+								<el-select v-model="state.discernForm.type" placeholder="请选择申请类型" class="w100" value-key="dicDataValue">
+									<el-option v-for="item in screenTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item" />
 								</el-select>
 							</el-form-item>
 						</el-col>
@@ -367,7 +367,9 @@ import {
 	workflowRedoParams,
 } from '/@/api/system/workflow';
 import { redoBaseData,redoApply } from '/@/api/business/redo';
-import {debounce, throttle} from '/@/utils/tools';
+import {delayCalcEndTime} from '/@/api/business/delay';
+import {discernApply,screenBaseData,workflowDiscernParams} from '/@/api/business/discern';
+import {debounce} from '/@/utils/tools';
 
 // 引入组件
 const CommonAdvice = defineAsyncComponent(() => import('/@/components/CommonAdvice/index.vue')); // 常用意见
@@ -436,6 +438,7 @@ const formComponents = ref<string>(); // 表单组件
 const communicationModeOptions = ref<EmptyArrayType>([]); // 沟通方式
 const timeTypeOptions = ref<EmptyArrayType>([]); // 延期申请单位
 const orderRedoReasonOptions = ref<EmptyArrayType>([]); // 重办理由
+const screenTypeOptions = ref<EmptyArrayType>([]); // 甄别类型
 const handleResult = (res: any) => {
 	state.nextStepOptions = res.result.steps; //处理人选择内容
 	state.handleId = res.result.id; //流程ID
@@ -482,13 +485,15 @@ const openDialog = async (val: any) => {
 			handleResult(res);
 			break;
 		case '甄别申请': // 甄别申请
-			res = await OrderFlowParams(); //获取开启流程参数
+			res = await workflowDiscernParams(); //获取开启流程参数
+      const responseDiscern = await screenBaseData();// 甄别基础数据
+      screenTypeOptions.value = responseDiscern.result?.screenType ?? [];
 			handleResult(res);
 			break;
 		case '工单重办': // 工单重办
 			res = await workflowRedoParams(state.workflowId); //获取开启流程参数
-      const response = await redoBaseData();// 重办基础数据
-      orderRedoReasonOptions.value = response.result?.orderRedoReasonOptions ?? [];
+      const responseRedo = await redoBaseData();// 重办基础数据
+      orderRedoReasonOptions.value = responseRedo.result?.orderRedoReasonOptions ?? [];
 			handleResult(res);
 			break;
 		case '工单退回': // 退回流程
@@ -612,7 +617,19 @@ const chooseAdviceDelay = (item: any) => {
 // 计算期满时间
 const computeTime =  debounce(() =>{
   if(!state.delayForm.timeLimitCount || !state.delayForm.timeLimitUnit) return;
-  console.log(state.delayForm.timeLimitCount,state.delayForm.timeLimitUnit);
+  let request = {
+    delayNum:state.delayForm.timeLimitCount,
+    delayUnit:state.delayForm.timeLimitUnit,
+    beginTime:state.orderDetail.expiredTime
+  }
+  state.loading = true;
+  delayCalcEndTime(request).then((res:any) => {
+    state.delayForm.endTime = formatDate(res.result.endTime,'YYYY-mm-dd HH:MM:SS');
+    state.loading = false
+  }).catch(() => {
+    state.delayForm.endTime = '';
+    state.loading = false;
+  })
 },300)
 // 选择常用意见 填入填写框 甄别
 const chooseAdviceDiscern = (item: any) => {
@@ -690,6 +707,23 @@ const onSubmit = (formEl: FormInstance | undefined) => {
 					case '工单延期': // 撤回流程
 						break;
 					case '工单甄别': // 撤回流程
+            const requestDiscern = {
+              data: {
+                no:state.orderDetail.no,
+                visitId:state.orderDetail.visitId,
+                orderId:state.orderDetail.id,
+                typeDicId:state.discernForm.type.dicDataValue,
+                typeDicName:state.discernForm.type.dicDataName,
+                content:state.discernForm.content
+              },
+              workflow: submitObj,
+            };
+            discernApply(requestDiscern).then(() => {
+              afterSubmit('orderProcessSuccess', true);
+            })
+                .catch(() => {
+                  afterSubmit('orderProcessFailed');
+                });
 						break;
 					case '工单重办': // 撤回流程
             const requestRedo = {

+ 6 - 6
src/layout/navBars/breadcrumb/user.vue

@@ -57,18 +57,18 @@
           </template>
           <div class="user-info-box-content">
             <div class="user-info-box-content-item">
-              <span class="user-info-box-content-item-title">登录账号:</span><span class="user-info-box-content-item-content">{{ userInfos.account }}</span>
+              <span class="user-info-box-content-item-title">登录账号:</span><span class="user-info-box-content-item-content">{{ userInfos.account?.userName ?? '' }}</span>
             </div>
-            <div class="mt10 user-info-box-content-item">
+            <div class="mt5 user-info-box-content-item">
               <span class="user-info-box-content-item-title">工号:</span><span class="user-info-box-content-item-content">{{ userInfos.staffNo }}</span>
             </div>
-            <div class="mt10 user-info-box-content-item">
-              <span class="user-info-box-content-item-title">职务:</span><span class="user-info-box-content-item-content">{{ userInfos.roles }}</span>
+            <div class="mt5 user-info-box-content-item">
+              <span class="user-info-box-content-item-title">职务:</span><span class="user-info-box-content-item-content">{{ userInfos.roles.map(item=>item.displayName).join(',') }}</span>
             </div>
-            <div class="mt10 user-info-box-content-item">
+            <div class="mt5 user-info-box-content-item">
               <span class="user-info-box-content-item-title">组织:</span><span class="user-info-box-content-item-content">{{ userInfos.orgName }}</span>
             </div>
-            <div class="mt10 flex-between">
+            <div class="mt5 flex-between">
               <el-button link type="primary" @click="onChangePwd">修改密码</el-button>
               <el-button link type="primary" @click="onLogOut">退出登录</el-button>
             </div>

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

@@ -88,7 +88,7 @@
 				<el-table-column label="操作" width="150" fixed="right" align="center">
 					<template #default="{ row }">
 						<el-button link type="primary" @click="submitDiscern(row)" title="提交甄别申请" v-auth="'business:discern:apply:submit'">
-							提交甄别
+							发起甄别
 						</el-button>
 					</template>
 				</el-table-column>

+ 2 - 2
src/views/business/discern/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="Status">
-							<el-select v-model="state.queryParams.Status" placeholder="请选择甄别申请状态" multiple clearable class="w100">
+							<el-select v-model="state.queryParams.Status" placeholder="请选择甄别申请状态" class="w100">
 								<el-option v-for="item in state.screenStatus" :value="item.key" :key="item.key" :label="item.value" />
 							</el-select>
 						</el-form-item>
@@ -18,7 +18,7 @@
 					</el-col>
 						<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-select v-model="state.queryParams.AcceptType" placeholder="请选择甄别类型" class="w100">
 									<el-option v-for="item in state.screenType" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
 								</el-select>
 							</el-form-item>

+ 8 - 9
src/views/business/followUp/index.vue

@@ -112,13 +112,12 @@
               </span>
           </template>
         </el-table-column>
-				<el-table-column label="操作" width="210" fixed="right" align="center">
+				<el-table-column label="操作" width="160" fixed="right" align="center">
 					<template #default="{ row }">
             <el-button link type="primary" @click="onOrderDetail(row)" title="查看工单详情" v-auth="'business:followUp:detail'"> 工单详情 </el-button>
 						<el-button link type="primary" @click="followUpDetail(row)" title="查看回访详情" v-auth="'business:followUp:detail'">
 							回访详情
 						</el-button>
-						<el-button link type="primary" @click="editFollowUp(row)" title="修改回访" v-auth="'business:followUp:edit'" v-if="[30].includes(row.visitState)"> 修改 </el-button>
 					</template>
 				</el-table-column>
 				<template #empty>
@@ -133,10 +132,10 @@
 				@pagination="queryList"
 			/>
 		</el-card>
-		<!-- 回访详情 -->
-		<FollowUpDetail ref="followUpDetailRef" @updateList="queryList" />
     <!-- 工单详情 -->
     <order-detail ref="OrderDetailRef" @updateList="queryList" />
+    <!-- 回访详情 -->
+    <follow-up-detail-com ref="followUpDetailComRef" @updateList="queryList" />
 	</div>
 </template>
 
@@ -150,7 +149,7 @@ import { useRouter } from 'vue-router';
 import {visitList} from "/@/api/business/followUp";
 
 // 引入组件
-const FollowUpDetail = defineAsyncComponent(() => import('/@/views/business/followUp/component/Follow-up-detail.vue')); // 回访
+const FollowUpDetailCom = defineAsyncComponent(() => import('/@/views/business/followUp/component/Follow-up-detail.vue')); // 回访
 const OrderDetail = defineAsyncComponent(() => import('/@/views/business/order/components/Order-detail.vue'));  // 工单详情
 
 // 定义变量内容
@@ -241,17 +240,17 @@ const onOrderDetail = (row: any) => {
   OrderDetailRef.value.openDialog(row.order);
 };
 // 回访详情
-const followUpDetailRef = ref<RefType>();
+const followUpDetailComRef = ref<RefType>();
 const followUpDetail = (row: any) => {
   if([10,20].includes(row.visitState)){
-    followUpDetailRef.value.openDialog(row,'回访');
+    followUpDetailComRef.value.openDialog(row,'回访');
   }else {
-    followUpDetailRef.value.openDialog(row,'回访详情');
+    followUpDetailComRef.value.openDialog(row,'回访详情');
   }
 };
 // 修改回访
 const editFollowUp = (row: any) => {
-  followUpDetailRef.value.openDialog(row,'回访修改');
+  followUpDetailComRef.value.openDialog(row,'回访修改');
 };
 onMounted(() => {
 	queryList();

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

@@ -58,7 +58,7 @@
             <span>{{ formatDate(row.actualHandleTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="statusText" label="状态" show-overflow-tooltip width="120"></el-table-column>
+        <el-table-column prop="statusText" label="状态" show-overflow-tooltip></el-table-column>
         <el-table-column label="操作" width="120" fixed="right" align="center">
           <template #default="{ row }">
             <el-button link type="primary" @click="publish(row)" title="发布工单" v-auth="'business:publish:backlog:publish'"> 发布 </el-button>