Procházet zdrojové kódy

reactor:303 部分市州通用-即将超期列表新增【批量催办】功能;

zhangchong před 2 měsíci
rodič
revize
5fb9034915

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

@@ -3,6 +3,17 @@
  * @description 业务管理-工单催办
  */
 import request from '@/utils/request';
+/**
+ * @description 工单催办待办
+ * @param {object} params
+ */
+export const urgeToDo = (params: object) => {
+    return request({
+        url: `/api/v1/Order/waiturge`,
+        method: 'get',
+        params
+    });
+};
 /**
  * @description 工单催办列表
  * @param {object} params

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

@@ -28,7 +28,7 @@
 import { reactive, ref } from 'vue';
 import { ElMessage, FormInstance } from 'element-plus';
 import { throttle } from '@/utils/tools';
-import { orderBatchReminder, orderComplement } from '@/api/business/order';
+import { orderBatchReminder } from '@/api/business/order';
 
 // 定义子组件向父组件传值/事件
 const emit = defineEmits(['updateList']);
@@ -69,7 +69,7 @@ const onSubmit = throttle((formEl: FormInstance | undefined) => {
 		};
 		orderBatchReminder(request)
 			.then(() => {
-				ElMessage.success('批量催办成功');
+				ElMessage.success('催办成功');
 				state.loading = false;
 				state.dialogVisible = false;
 				emit('updateList');

+ 17 - 1
src/views/business/overdue/soon.vue

@@ -26,6 +26,9 @@
 					<el-button type="primary" @click="onJbExport" :loading="state.loading" :disabled="isChecked"
 						><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出<span v-if="checkTable.length">({{ checkTable.length }})</span>
 					</el-button>
+					<el-button type="primary" @click="onUrge" v-auth="'business:overdueSoon:urge'" :disabled="isChecked" :loading="state.loading"
+						><SvgIcon name="ele-Plus" class="mr5" />添加催办<span v-if="checkTable.length">({{ checkTable.length }})</span>
+					</el-button>
 				</template>
 			</vxe-toolbar>
 			<div style="overflow: hidden; width: 100%; height: 100%; flex: 1">
@@ -124,6 +127,9 @@
 						:default-time="defaultTimeStartEnd"
 					/>
 				</el-form-item>
+				<el-form-item label="一级部门" prop="OrgLevelOneName">
+					<el-input v-model="state.queryParams.OrgLevelOneName" placeholder="请填写一级部门名称" clearable @keyup.enter="handleQuery" />
+				</el-form-item>
 				<el-form-item label="接办部门" prop="ActualHandleOrgName">
 					<el-input v-model="state.queryParams.ActualHandleOrgName" placeholder="请填写接办部门名称" clearable @keyup.enter="handleQuery" />
 				</el-form-item>
@@ -154,6 +160,8 @@
 				<el-button @click="resetQuery(drawerRuleFormRef)" class="default-button"> <SvgIcon name="ele-Refresh" class="mr5" />重置 </el-button>
 			</template>
 		</el-drawer>
+		<!-- 工单催办 -->
+		<order-urge ref="orderUrgeRef" @updateList="refreshList" />
 	</div>
 </template>
 <script setup lang="tsx" name="businessOverdueSoon">
@@ -162,12 +170,13 @@ import { FormInstance } from 'element-plus';
 import { formatDate } from '@/utils/formatTime';
 import { exportOverdueSoon, overdueSoonListFixed, overdueSoonListTotal } from '@/api/query/overdue';
 import Other from '@/utils/other';
-import { exportAssignment, getNeedArr } from '@/utils/tools';
+import { exportAssignment } from '@/utils/tools';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import { departmentSatisfactionDetailBase } from '@/api/statistics/department';
 // 引入组件
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
 const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
+const OrderUrge = defineAsyncComponent(() => import('@/views/business/order/components/Order-Urge.vue')); // 工单催办
 
 // 定义变量内容
 const state = reactive<any>({
@@ -188,6 +197,7 @@ const state = reactive<any>({
 		ExpiredTimeStart: null, //办理期限 开始
 		ExpiredTimeEnd: null, //办理期限 结束
 		ActualHandleOrgName: null, // 接办部门
+		OrgLevelOneName: null, // 一级部门
 		AcceptType: null, // 受理类型
 		HotspotName: null, // 热点
 	},
@@ -252,6 +262,12 @@ const onJbExport = () => {
 	const ids = checkTable.value.map((item: any) => item.id);
 	exportAssignment(ids);
 };
+// 添加催办
+const orderUrgeRef = ref<RefType>();
+const onUrge = () => {
+	const ids = checkTable.value.map((item: any) => item.id);
+	orderUrgeRef.value.openDialog(ids);
+};
 const tableRef = ref<RefType>();
 const checkTable = ref<EmptyArrayType>([]);
 const selectAllChangeEvent = ({ checked }) => {

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

@@ -24,11 +24,11 @@
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 						<el-form-item label="催办内容" class="formatted-text">{{ state.urgeDetail.applyContent }}</el-form-item>
 					</el-col>
-					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+<!--					<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="催办附件" readonly classify="催办附件" v-model="state.urgeDetail.files" />
 						</el-form-item>
-					</el-col>
+					</el-col>-->
 				</el-row>
 			</el-form>
 		</div>

+ 2 - 2
src/views/business/urge/todo.vue

@@ -109,7 +109,7 @@
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import { formatDate } from '@/utils/formatTime';
-import { urgeList } from '@/api/business/urge';
+import {urgeList, urgeToDo} from '@/api/business/urge';
 // 引入组件
 const OrderUrgeDetail = defineAsyncComponent(() => import('@/views/business/urge/components/Order-urge-detail.vue')); // 催办详情
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
@@ -141,7 +141,7 @@ const refreshList = () => {
 /** 获取列表 */
 const queryList = () => {
 	state.loading = true;
-	urgeList(state.queryParams)
+  urgeToDo(state.queryParams)
 		.then((res: any) => {
 			state.tableData = res.result?.items ?? [];
 			state.total = res.result?.total ?? 0;