Browse Source

reactor:364 市州通用-退回已审批、退回列表、审批明细增加字段;

zhangchong 6 months ago
parent
commit
6f44cc44a9

+ 157 - 65
src/views/business/return/audit.vue

@@ -70,71 +70,138 @@
 					<el-button link type="primary" @click="onAuditDetail(row)" title="查看审批详情" v-if="[1, 2].includes(row.state)"> 审批详情 </el-button>
 				</template>
 			</ProTable>
-			<ProTable
-				ref="proTableRef"
-				:columns="columns1"
-				:data="state.tableData"
-				@updateTable="queryList"
-				:loading="state.loading"
-				:total="state.total"
-				v-model:page-index="state.queryParams.PageIndex"
-				v-model:page-size="state.queryParams.PageSize"
-				v-if="['ZiGong'].includes(themeConfig.appScope)"
-			>
-				<template #table-search>
-					<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="handleQuery" class="keyword-input" />
-						</el-form-item>
-						<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="handleQuery"
-								value-format="YYYY-MM-DD[T]HH:mm:ss"
-								:default-time="defaultTimeStartEnd"
-							/>
-						</el-form-item>
-						<el-form-item label="审批状态" prop="State" v-if="state.queryParams.AuditState === '2'">
-							<el-select v-model="state.queryParams.State" placeholder="请选择审批状态" @change="handleQuery">
-								<el-option value="1" label="审批通过" />
-								<el-option value="2" label="审批拒绝" />
-							</el-select>
-						</el-form-item>
-						<el-form-item>
-							<el-button type="primary" @click="handleQuery" :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>
-				</template>
-				<template #tableHeader="scope">
-					<el-button
-						type="primary"
-						@click="onAuditMultiple"
-						:disabled="!scope.isSelected"
-						:loading="state.loading"
-						v-auth="'business:return:audit:multiple'"
-					>批量审批
-					</el-button>
-				</template>
-				<template #title="{ row }">
-					<order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
-				</template>
-				<!-- 表格操作 -->
-				<template #operation="{ row }">
-					<el-button link type="primary" @click="onAudit(row)" title="退回特提" v-auth="'business:return:audit'" v-if="[0].includes(row.state)">
-						审批
-					</el-button>
-					<el-button link type="primary" @click="onAuditDetail(row)" title="查看审批详情" v-if="[1, 2].includes(row.state)"> 审批详情 </el-button>
-				</template>
-			</ProTable>
+			<template 	v-if="['ZiGong'].includes(themeConfig.appScope)">
+				<ProTable
+					ref="proTableRef"
+					:columns="columns1"
+					:data="state.tableData"
+					@updateTable="queryList"
+					:loading="state.loading"
+					:total="state.total"
+					v-model:page-index="state.queryParams.PageIndex"
+					v-model:page-size="state.queryParams.PageSize"
+					v-if="state.queryParams.AuditState === '1'"
+				>
+					<template #table-search>
+						<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="handleQuery" class="keyword-input" />
+							</el-form-item>
+							<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="handleQuery"
+									value-format="YYYY-MM-DD[T]HH:mm:ss"
+									:default-time="defaultTimeStartEnd"
+								/>
+							</el-form-item>
+							<el-form-item label="审批状态" prop="State" v-if="state.queryParams.AuditState === '2'">
+								<el-select v-model="state.queryParams.State" placeholder="请选择审批状态" @change="handleQuery">
+									<el-option value="1" label="审批通过" />
+									<el-option value="2" label="审批拒绝" />
+								</el-select>
+							</el-form-item>
+							<el-form-item>
+								<el-button type="primary" @click="handleQuery" :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>
+					</template>
+					<template #tableHeader="scope">
+						<el-button
+							type="primary"
+							@click="onAuditMultiple"
+							:disabled="!scope.isSelected"
+							:loading="state.loading"
+							v-auth="'business:return:audit:multiple'"
+						>批量审批
+						</el-button>
+					</template>
+					<template #title="{ row }">
+						<order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
+					</template>
+					<!-- 表格操作 -->
+					<template #operation="{ row }">
+						<el-button link type="primary" @click="onAudit(row)" title="退回特提" v-auth="'business:return:audit'" v-if="[0].includes(row.state)">
+							审批
+						</el-button>
+						<el-button link type="primary" @click="onAuditDetail(row)" title="查看审批详情" v-if="[1, 2].includes(row.state)"> 审批详情 </el-button>
+					</template>
+				</ProTable>
+				<ProTable
+					ref="proTableRef"
+					:columns="columns2"
+					:data="state.tableData"
+					@updateTable="queryList"
+					:loading="state.loading"
+					:total="state.total"
+					v-model:page-index="state.queryParams.PageIndex"
+					v-model:page-size="state.queryParams.PageSize"
+					v-if="state.queryParams.AuditState === '2'"
+				>
+					<template #table-search>
+						<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="handleQuery" class="keyword-input" />
+							</el-form-item>
+							<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="handleQuery"
+									value-format="YYYY-MM-DD[T]HH:mm:ss"
+									:default-time="defaultTimeStartEnd"
+								/>
+							</el-form-item>
+							<el-form-item label="审批状态" prop="State" v-if="state.queryParams.AuditState === '2'">
+								<el-select v-model="state.queryParams.State" placeholder="请选择审批状态" @change="handleQuery">
+									<el-option value="1" label="审批通过" />
+									<el-option value="2" label="审批拒绝" />
+								</el-select>
+							</el-form-item>
+							<el-form-item>
+								<el-button type="primary" @click="handleQuery" :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>
+					</template>
+					<template #tableHeader="scope">
+						<el-button
+							type="primary"
+							@click="onAuditMultiple"
+							:disabled="!scope.isSelected"
+							:loading="state.loading"
+							v-auth="'business:return:audit:multiple'"
+						>批量审批
+						</el-button>
+					</template>
+					<template #title="{ row }">
+						<order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
+					</template>
+					<!-- 表格操作 -->
+					<template #operation="{ row }">
+						<el-button link type="primary" @click="onAudit(row)" title="退回特提" v-auth="'business:return:audit'" v-if="[0].includes(row.state)">
+							审批
+						</el-button>
+						<el-button link type="primary" @click="onAuditDetail(row)" title="查看审批详情" v-if="[1, 2].includes(row.state)"> 审批详情 </el-button>
+					</template>
+				</ProTable>
+			</template>
 		</div>
 		<!-- 退回审批 -->
 		<return-audit ref="returnAuditRef" @updateList="queryList" />
@@ -152,6 +219,7 @@ import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import Other from '@/utils/other';
 import { useThemeConfig } from '@/stores/themeConfig';
 import { storeToRefs } from 'pinia';
+import { formatDate } from '@/utils/formatTime';
 // 引入组件
 const ReturnAudit = defineAsyncComponent(() => import('@/views/business/return/components/Return-audit.vue')); // 审批
 const ReturnAuditMultiple = defineAsyncComponent(() => import('@/views/business/return/components/Return-audit-multiple.vue'));
@@ -196,6 +264,30 @@ const columns1 = ref<any[]>([
 	{ prop: 'content', label: '申请理由', minWidth: 150 },
 	{ prop: 'operation', label: '操作', fixed: 'right', minWidth: 90, align: 'center' },
 ]);
+const columns2 = ref<any[]>([
+	{ type: 'selection', fixed: 'left', minWidth: 30, align: 'center' },
+	{ prop: 'order.no', label: '工单编码', minWidth: 140 },
+	{ prop: 'order.isProvinceText', label: '省/市工单', minWidth: 90 },
+	{ prop: 'order.title', label: '工单标题', minWidth: 200 },
+	{ prop: 'order.sourceChannel', label: '来源渠道', minWidth: 100 },
+	{ prop: 'order.acceptType', label: '受理类型', minWidth: 100 },
+	{ prop: 'order.hotspotName', label: '热点分类', minWidth: 150 },
+	{ prop: 'order.centerToOrgHandlerName', label: '最近派单员', minWidth: 140 },
+	{ prop: 'sendBackStepName', label: '退回节点', minWidth: 140 },
+	{ prop: 'sendBackTimeDifference', label: '退回时差(小时)', minWidth: 140 },
+	{ prop: 'order.acceptorName', label: '受理人', minWidth: 120 },
+	{ prop: 'order.orgLevelOneName', label: '一级部门', minWidth: 140 },
+	{ prop: 'stateText', label: '退回审批状态', minWidth: 120 },
+	{ prop: 'creatorName', label: '申请人', minWidth: 120 },
+	{ prop: 'creatorOrgName', label: '申请部门', minWidth: 140 },
+	{ prop: 'content', label: '申请理由', minWidth: 150 },
+	{ prop: 'auditUser', label: '审批人', minWidth: 120 },
+	{ prop: 'auditTime', label: '审批时间', minWidth: 160,render: (scope) => {
+			return <span>{formatDate(scope.row.auditTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		}, },
+	{ prop: 'auditContent', label: '审批意见', minWidth: 140 },
+	{ prop: 'operation', label: '操作', fixed: 'right', minWidth: 90, align: 'center' },
+]);
 const state = reactive<any>({
 	queryParams: {
 		// 查询条件

+ 38 - 36
src/views/business/return/components/Return-detail.vue

@@ -24,42 +24,42 @@
 				</el-col>
 				<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 					<el-form-item label="附件">
-            <annex-list name="退回附件" readonly :businessId="state.ruleForm.id" classify="退回附件" v-model="state.ruleForm.files"/>
+						<annex-list name="退回附件" readonly :businessId="state.ruleForm.id" classify="退回附件" v-model="state.ruleForm.files" />
+					</el-form-item>
+				</el-col>
+				<el-divider content-position="left">
+					<el-text tag="b" size="large"> 审批信息 </el-text>
+				</el-divider>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="审批结果">
+						{{ state.ruleForm.state === 1 ? '审核通过' : state.ruleForm.state === 2 ? '审核驳回' : '' }}
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="审核人">
+						{{ state.ruleForm.auditName }}
+					</el-form-item>
+				</el-col>
+				<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<el-form-item label="审核时间">
+						{{ dayjs(state.ruleForm.auditTime).format('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="审批意见" class="formatted-text">
+						{{ state.ruleForm.auditContent }}
 					</el-form-item>
 				</el-col>
-        <el-divider content-position="left">
-          <el-text tag="b" size="large"> 审批信息 </el-text>
-        </el-divider>
-        <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-          <el-form-item label="审批结果">
-            {{state.ruleForm.state === 1 ? '审核通过' : state.ruleForm.state === 2 ? '审核驳回' : ''}}
-          </el-form-item>
-        </el-col>
-        <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-          <el-form-item label="审核人">
-            {{state.ruleForm.auditName }}
-          </el-form-item>
-        </el-col>
-        <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-          <el-form-item label="审核时间">
-            {{dayjs(state.ruleForm.auditTime).format('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="审批意见" class="formatted-text">
-            {{state.ruleForm.auditOpinion}}
-          </el-form-item>
-        </el-col>
 			</el-row>
 		</el-form>
 	</el-dialog>
 </template>
 <script setup lang="ts" name="secondVisitDialog">
-import { computed, defineAsyncComponent, reactive, ref } from 'vue';
+import { defineAsyncComponent, reactive, ref } from 'vue';
 import { formatDate } from '@/utils/formatTime';
-import {  returnDetail } from '@/api/business/return';
-import dayjs from "dayjs";
-import {transformFile} from "@/utils/tools";
+import { returnDetail } from '@/api/business/return';
+import dayjs from 'dayjs';
+import { transformFile } from '@/utils/tools';
 
 // 引入组件
 const AnnexList = defineAsyncComponent(() => import('@/components/AnnexList/index.vue'));
@@ -83,14 +83,16 @@ const ruleFormRef = ref<RefType>();
  */
 const openDialog = (val: any) => {
 	state.loading = true;
-	returnDetail(val.id).then((res) => {
-		state.ruleForm = res.result;
-    state.ruleForm.files = transformFile(state.ruleForm.files);
-		state.loading = false;
-		state.dialogVisible = true;
-	}).catch(()=>{
-		state.loading = false;
-	})
+	returnDetail(val.id)
+		.then((res) => {
+			state.ruleForm = res.result;
+			state.ruleForm.files = transformFile(state.ruleForm.files);
+			state.loading = false;
+			state.dialogVisible = true;
+		})
+		.catch(() => {
+			state.loading = false;
+		});
 };
 // 关闭弹窗
 const closeDialog = () => {

+ 6 - 0
src/views/business/return/index.vue

@@ -90,6 +90,7 @@ import { FormInstance } from 'element-plus';
 import { returnAuditList, returnBase, returnExport } from '@/api/business/return';
 import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import Other from '@/utils/other';
+import { formatDate } from '@/utils/formatTime';
 // 引入组件
 const ReturnAuditDetail = defineAsyncComponent(() => import('@/views/business/return/components/Return-audit-detail.vue')); // 审批详情
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
@@ -109,6 +110,11 @@ const columns = ref<any[]>([
 	{ prop: 'creatorName', label: '申请人', minWidth: 120 },
 	{ prop: 'creatorOrgName', label: '申请部门', minWidth: 140 },
 	{ prop: 'content', label: '申请理由', minWidth: 150 },
+	{ prop: 'auditUser', label: '审批人', minWidth: 120 },
+	{ prop: 'auditTime', label: '审批时间', minWidth: 160,render: (scope) => {
+			return <span>{formatDate(scope.row.auditTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		}, },
+	{ prop: 'auditContent', label: '审批意见', minWidth: 140 },
 	{ prop: 'operation', label: '操作', fixed: 'right', minWidth: 90, align: 'center' },
 ]);
 const state = reactive<any>({

+ 2 - 2
src/views/todo/edit/components/Edit-order.vue

@@ -358,7 +358,7 @@
 						/>
 					</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"  v-if="state.ruleForm.fileOpinion">
 					<el-form-item label="中心意见" prop="centerOpinion" :rules="[{ required: false, message: '请填写中心意见', trigger: 'blur' }]">
 						<el-input
 							v-model="state.ruleForm.centerOpinion"
@@ -368,7 +368,7 @@
 						></el-input>
 					</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" v-if="state.ruleForm.fileOpinion">
 					<el-form-item label="承办意见" prop="fileOpinion" :rules="[{ required: false, message: '请填写承办意见', trigger: 'blur' }]">
 						<el-input
 							v-model="state.ruleForm.fileOpinion"