Parcourir la source

feat:延期审批对接;

zhangchong il y a 1 an
Parent
commit
15cf058e24

BIN
src/assets/images/home/clock.png


BIN
src/assets/images/home/gdhf.png


BIN
src/assets/images/home/qbgd.png


BIN
src/assets/images/home/sllb.png


BIN
src/assets/images/home/ywcx.png


BIN
src/assets/images/home/zbgl.png


+ 3 - 3
src/components/LogicFlow/PropertySetting/index.vue

@@ -20,10 +20,10 @@
 </template>
 <script lang="ts" setup name="flowMain">
 import {reactive, ref, computed, defineAsyncComponent, unref, onMounted} from 'vue';
-import { NodeTypeEnum } from '../enums';
+import { NodeTypeEnum } from '/@/components/LogicFlow/enums';
 import {baseData} from "/@/api/system/workflow";
-const task = defineAsyncComponent(() => import('./task.vue'));
-const start = defineAsyncComponent(() => import('./start.vue'));
+const task = defineAsyncComponent(() => import('/@/components/logicFlow/propertySetting/task.vue'));
+const start = defineAsyncComponent(() => import('/@/components/logicFlow/propertySetting/start.vue'));
 const showDrawer = ref(false);  // 是否显示抽屉
 const drawerRef = ref(null);  // 抽屉ref
 let formData = reactive<any>({} as any);  // 表单数据

+ 2 - 2
src/components/LogicFlow/PropertySetting/start.vue

@@ -143,8 +143,8 @@
 		</el-form>
 	</div>
 </template>
-<script lang="ts" setup name="flowNode">
-import {reactive, watch, onMounted, ref, nextTick} from 'vue';
+<script lang="ts" setup name="flowNodeStart">
+import {reactive, watch, onMounted, ref} from 'vue';
 import { getSelectList, queryUser } from '/@/api/system/workflow';
 import { getCanUseOrg } from '/@/api/system/user';
 import { removeDuplicate } from '/@/utils/arrayOperation';

+ 38 - 31
src/views/business/delay/backlog/index.vue

@@ -25,54 +25,55 @@
 			<!-- 表格 -->
 			<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="order.no" label="工单编码" show-overflow-tooltip></el-table-column>
         <el-table-column width="100" label="省/市工单" prop="isProvince" >
           <template #default="{ row }">
-            <span>{{ row.isProvince ? '省工单' : '市工单' }}</span>
+            <span>{{ row.order?.isProvince ? '省工单' : '市工单' }}</span>
           </template>
         </el-table-column>
 				<el-table-column label="工单标题" show-overflow-tooltip width="400">
 					<template #default="{ row }">
-            <span class="color-primary">{{ row.title }}</span>
+            <span class="color-primary">{{ row.order?.title }}</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>
+						<span>{{ formatDate(row.order?.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
 					</template>
 				</el-table-column>
-				<el-table-column prop="employeeName" label="受理人" show-overflow-tooltip width="170">
-					<template #default="{ row }">
-						<span>{{ row.employeeName + '[' + row.employeeStaffNo + ']' }}</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="expiredTime" label="延期申请时间" show-overflow-tooltip width="170">
+        <el-table-column prop="acceptorName" label="受理人" show-overflow-tooltip width="170">
+          <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.hotspotName" 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.actualHandleOrgName" label="接办部门" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="actualHandleTime" label="接办时间" show-overflow-tooltip width="170">
+          <template #default="{ row }">
+            <span>{{ formatDate(row.order.actualHandleTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+          </template>
+        </el-table-column>
+
+				<el-table-column prop="delayState" label="延期申请状态" show-overflow-tooltip width="120"></el-table-column>
+				<el-table-column label="延期申请时间" show-overflow-tooltip width="170">
 					<template #default="{ row }">
-						<span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+						<span>{{ formatDate(row.creationTime, '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="acceptTypeText" 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">
+				<el-table-column prop="creatorName" label="延期申请人" show-overflow-tooltip width="120"></el-table-column>
+				<el-table-column prop="creatorOrgName" label="延期申请部门" show-overflow-tooltip width="120"></el-table-column>
+				<el-table-column prop="delayNum" label="延期申请时限" show-overflow-tooltip width="120"></el-table-column>
+				<el-table-column prop="delayUnit" label="延期申请单位" show-overflow-tooltip width="120"></el-table-column>
+				<el-table-column prop="delayReason" label="申请理由" show-overflow-tooltip width="120"></el-table-column>
+				<el-table-column label="申请前期满时间" show-overflow-tooltip width="170">
 					<template #default="{ row }">
-						<span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+						<span>{{ formatDate(row.applyDelayTime, '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 label="通过后期满时间" show-overflow-tooltip width="170">
 					<template #default="{ row }">
-						<span>{{ formatDate(row.expiredTime, 'YYYY-mm-dd HH:MM:SS') }}</span>
+						<span>{{ formatDate(row.afterDelay, 'YYYY-mm-dd HH:MM:SS') }}</span>
 					</template>
 				</el-table-column>
 				<el-table-column label="操作" width="240" fixed="right" align="center">
@@ -192,8 +193,14 @@ const processDetail = (row:any) => {
 const processAuditRef = ref<RefType>();  // 流程审批ref
 const approve = (row: any) => {
   const params = {
-    title: `延期审批 (${row.title})`,
-    ...row,
+    id: row.workFlowId,
+    processType:'延期审批',
+    orderDetail: row.order,
+    extra: {
+      dialogTitle: '延期审批',
+      inputPlaceholder: '办理意见',
+      annexName:'延期附件',
+    },
   };
   processAuditRef.value.openDialog(params);
 };

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

@@ -37,15 +37,15 @@
 			<!-- 表格 -->
 			<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 width="150"></el-table-column>
+				<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.isProvince ? '省工单' : '市工单' }}</span>
+            <span>{{ row.order?.isProvince ? '省工单' : '市工单' }}</span>
           </template>
         </el-table-column>
 				<el-table-column label="工单标题" show-overflow-tooltip width="300">
 					<template #default="{ row }">
-            <span class="color-primary">{{ row.title }}</span>
+            <span class="color-primary">{{ row.order?.title }}</span>
 					</template>
 				</el-table-column>
 				<el-table-column prop="startTime" label="受理时间" show-overflow-tooltip width="170">

+ 5 - 5
src/views/home/component/Entrance.vue

@@ -8,7 +8,6 @@
       <template v-if="state.entranceArray.length">
         <ul class="right-entrance-list">
           <li class="right-entrance-list-item" v-for="item in state.entranceArray" :title="item.pageName" :key="item.id" :data-id="item.id" @click="goLink(item)">
-            <!--								<img v-lazy="getImageUrl(item.fastIcon)" alt="" class="my-handle" src="" />-->
             <SvgIcon :name="item.icon" size="42px" class="my-handle" />
             <p class="text-no-wrap">{{ item.pageName }}</p>
           </li>
@@ -46,7 +45,10 @@
 			<div class="entrance-select">
 				<p class="entrance-select-title">
 					<span>系统功能</span>
-					<el-input v-model="state.searchKey" :prefix-icon="Search" placeholder="请输入关键字" class="input" @keyup.enter="getEntranceSelect">
+					<el-input v-model="state.searchKey" placeholder="请输入关键字" class="input" @keyup.enter="getEntranceSelect">
+            <template #prefix>
+              <SvgIcon name="ele-Search"/>
+            </template>
 						<template #suffix>
 							<el-button type="primary" size="small" round @click="getEntranceSelect">搜索</el-button>
 						</template>
@@ -55,7 +57,7 @@
 				<div class="mb20" v-loading="state.selectLoading">
 					<template v-if="state.entranceSelect.length">
 						<ul class="entrance-list-box">
-							<li class="entrance-list-box-item" v-for="(item, index) in state.entranceSelect" :key="item.id" :title="item.pageName">
+							<li class="entrance-list-box-item" v-for="item in state.entranceSelect" :key="item.id" :title="item.pageName">
 <!--								<img v-lazy="getImageUrl(item.fastIcon)" alt="" class="mb10"  src=""/>-->
                 <SvgIcon :name="item.icon" size="42px" class="entrance-list-box-item-icon"/>
 								<p class="entrance-list-box-item-name text-no-wrap">{{ item.pageName }}</p>
@@ -86,8 +88,6 @@
 import {onMounted, reactive} from 'vue';
 import { ElMessage } from 'element-plus';
 import {useRouter} from "vue-router";
-import { Search } from '@element-plus/icons-vue';
-import { getImageUrl } from '/@/utils/tools';
 import { geFastMenu, fastMenu, setFastMenu } from '/@/api/home';
 import Draggable from 'vuedraggable';
 

+ 4 - 1
src/views/home/component/Notice.vue

@@ -126,9 +126,12 @@ onMounted(()=>{
       display: flex;
       align-items: center;
       justify-content: space-between;
-      border-top: 1px solid var(--el-border-color);
+      border-bottom: 1px solid var(--el-border-color);
       cursor: pointer;
       height: 50px;
+      &:last-child {
+        border-bottom: none;
+      }
       &-name {
         flex: 1;
         max-width: 70%;

+ 8 - 42
src/views/system/menu/component/Menu-add.vue

@@ -89,29 +89,17 @@
 				<template v-if="[1, 2].includes(state.ruleForm.menuType)">
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 						<el-form-item label="快捷入口">
+              <template #label>
+                <p class="flex-center-align">
+                  <el-tooltip content="首页常用入口可选" placement="top-start" trigger="hover">
+                    <SvgIcon name="ele-QuestionFilled" class="mr3"></SvgIcon>
+                  </el-tooltip>
+                  快捷入口
+                </p>
+              </template>
 							<el-switch v-model="state.ruleForm.isFast" inline-prompt active-text="是" inactive-text="否" />
 						</el-form-item>
 					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="state.ruleForm.isFast">
-						<el-form-item label="入口图片" prop="title" :rules="[{ required: false, message: '请选择入口图片', trigger: 'blur' }]">
-							<template #label>
-								<p class="flex-center-align">
-									入口图片
-									<el-tooltip content="首页快捷入口图标" placement="top-start" trigger="click">
-										<SvgIcon name="ele-QuestionFilled" class="cursor-help"></SvgIcon>
-									</el-tooltip>
-								</p>
-							</template>
-							<el-select v-model="state.ruleForm.fastIcon" placeholder="请选择入口图片" class="w100" clearable>
-								<el-option v-for="item in state.imgList" :key="item.value" :label="item.label" :value="item.value">
-									<div class="item-Img">
-										<span>{{ item.label }}</span>
-										<img v-lazy="getImageUrl(item.label)" alt="" src="" />
-									</div>
-								</el-option>
-							</el-select>
-						</el-form-item>
-					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 						<el-form-item label="是否隐藏">
 							<el-switch v-model="state.ruleForm.isHide" inline-prompt active-text="是" inactive-text="否" />
@@ -196,28 +184,6 @@ const state = reactive<any>({
 	},
 	menuData: [], // 上级菜单数据
 	loading: false, // 加载状态
-	imgList: [
-		{
-			label: 'home/sllb.png',
-			value: 'home/sllb.png',
-		},
-		{
-			label: 'home/gdhf.png',
-			value: 'home/gdhf.png',
-		},
-		{
-			label: 'home/qbgd.png',
-			value: 'home/qbgd.png',
-		},
-		{
-			label: 'home/ywcx.png',
-			value: 'home/ywcx.png',
-		},
-		{
-			label: 'home/zbgl.png',
-			value: 'home/zbgl.png',
-		},
-	],
 });
 // 格式化菜单数据并排除按钮
 const getMenuData = (routes: any) => {

+ 8 - 42
src/views/system/menu/component/Menu-edit.vue

@@ -89,29 +89,17 @@
 				<template v-if="[1, 2].includes(state.ruleForm.menuType)">
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 						<el-form-item label="快捷入口">
+              <template #label>
+                <p class="flex-center-align">
+                  <el-tooltip content="首页常用入口可选" placement="top-start" trigger="hover">
+                    <SvgIcon name="ele-QuestionFilled" class="mr3"></SvgIcon>
+                  </el-tooltip>
+                  快捷入口
+                </p>
+              </template>
 							<el-switch v-model="state.ruleForm.isFast" inline-prompt active-text="是" inactive-text="否" />
 						</el-form-item>
 					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="state.ruleForm.isFast">
-						<el-form-item label="入口图片" prop="title" :rules="[{ required: false, message: '请选择入口图片', trigger: 'blur' }]">
-							<template #label>
-								<p class="flex-center-align">
-									入口图片
-									<el-tooltip content="首页快捷入口图标" placement="top-start" trigger="click">
-										<SvgIcon name="ele-QuestionFilled" class="cursor-help"></SvgIcon>
-									</el-tooltip>
-								</p>
-							</template>
-							<el-select v-model="state.ruleForm.fastIcon" placeholder="请选择入口图片" class="w100" clearable>
-								<el-option v-for="item in state.imgList" :key="item.value" :label="item.label" :value="item.value">
-									<div class="item-Img">
-										<span>{{ item.label }}</span>
-										<img v-lazy="getImageUrl(item.label)" alt="" src="" />
-									</div>
-								</el-option>
-							</el-select>
-						</el-form-item>
-					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 						<el-form-item label="是否隐藏">
 							<el-switch v-model="state.ruleForm.isHide" inline-prompt active-text="是" inactive-text="否" />
@@ -196,28 +184,6 @@ const state = reactive<any>({
 	},
 	menuData: <EmptyArrayType>[], // 上级菜单数据
 	loading: false, // 加载状态
-	imgList: [
-		{
-			label: 'home/sllb.png',
-			value: 'home/sllb.png',
-		},
-		{
-			label: 'home/gdhf.png',
-			value: 'home/gdhf.png',
-		},
-		{
-			label: 'home/qbgd.png',
-			value: 'home/qbgd.png',
-		},
-		{
-			label: 'home/ywcx.png',
-			value: 'home/ywcx.png',
-		},
-		{
-			label: 'home/zbgl.png',
-			value: 'home/zbgl.png',
-		},
-	],
 });
 // 格式化菜单数据并排除按钮
 const getMenuData = (routes: any) => {