Explorar o código

reactor:所有多选操作加上选中的数量;

zhangchong hai 6 meses
pai
achega
92830a0ad4

+ 15 - 0
src/api/statistics/call.ts

@@ -285,6 +285,21 @@ export const callDateSimpleDetail = (params: object) => {
 		params,
 	});
 }
+/**
+ * @description 话务日期统计简单详情导出
+ * @param {object} data
+ */
+export const callDateSimpleDetailExport = (data: object) => {
+	return request({
+		url: `/api/v1/BiCall/query_calls_statistics_detail/export`,
+		method: 'post',
+		data,
+		responseType: 'blob',
+	}, {
+		reduce_data_format: false
+	}
+	)
+}
 /**
  * @description 话务日期统计简单详情基础信息
  * @param {object} params

+ 1 - 1
src/views/auxiliary/advice/index.vue

@@ -32,7 +32,7 @@
 				<!-- 表格 header 按钮 -->
 				<template #tableHeader="scope">
 					<el-button type="primary" @click="onAdviceAdd"> <SvgIcon name="ele-Plus" class="mr5" />新增 </el-button>
-					<el-button type="danger" @click="onAdviceDelete" :disabled="!scope.isSelected"> <SvgIcon name="ele-Delete" class="mr5" />删除 </el-button>
+					<el-button type="danger" @click="onAdviceDelete" :disabled="!scope.isSelected"> <SvgIcon name="ele-Delete" class="mr5" />删除<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span> </el-button>
 				</template>
 				<template #isOpen="{ row }">
 					{{ row.isOpen ? '公开常用意见' : '个人常用意见' }}

+ 2 - 2
src/views/auxiliary/businessTag/index.vue

@@ -38,10 +38,10 @@
 						<SvgIcon name="ele-Plus" class="mr5" />新增
 					</el-button>
 					<el-button type="danger" @click="businessTagRemove" v-auth="'auxiliary:businessTag:delete'" :disabled="!scope.isSelected">
-						<SvgIcon name="ele-Delete" class="mr5" />删除
+						<SvgIcon name="ele-Delete" class="mr5" />删除<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 					<el-button type="info" @click="businessTagBinding" v-auth="'auxiliary:businessTag:binding'" :disabled="!scope.isSelected">
-						<SvgIcon name="ele-Link" class="mr5" />批量绑定
+						<SvgIcon name="ele-Link" class="mr5" />批量绑定<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<!-- 表格操作 -->

+ 1 - 1
src/views/auxiliary/externalCitizen/index.vue

@@ -50,7 +50,7 @@
 						<SvgIcon name="ele-Download" class="mr5" /> 模板下载
 					</el-button>
 					<el-button type="danger" @click="onDelete" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'auxiliary:externalCitizen:delete'"
-					><SvgIcon name="ele-Delete" class="mr5" />删除
+					><SvgIcon name="ele-Delete" class="mr5" />删除<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #operation="{ row }">

+ 1 - 1
src/views/auxiliary/knowledgeLexicon/index.vue

@@ -36,7 +36,7 @@
 						<SvgIcon name="ele-Plus" class="mr5" />新增
 					</el-button>
 					<el-button type="danger" @click="businessTagRemove" v-auth="'auxiliary:knowledgeLexicon:delete'" :disabled="!scope.isSelected">
-						<SvgIcon name="ele-Delete" class="mr5" />删除
+						<SvgIcon name="ele-Delete" class="mr5" />删除<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<!-- 表格操作 -->

+ 1 - 1
src/views/auxiliary/orderLexicon/index.vue

@@ -36,7 +36,7 @@
 						<SvgIcon name="ele-Plus" class="mr5" />新增
 					</el-button>
 					<el-button type="danger" @click="businessTagRemove" v-auth="'auxiliary:orderLexicon:delete'" :disabled="!scope.isSelected">
-						<SvgIcon name="ele-Delete" class="mr5" />删除
+						<SvgIcon name="ele-Delete" class="mr5" />删除<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<!-- 表格操作 -->

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

@@ -26,7 +26,7 @@
         </template>
 				<template #tableHeader="scope">
 					<el-button type="primary" @click="oncancelEnd" v-auth="'business:order:end'" :disabled="!scope.isSelected">
-						<SvgIcon name="ele-Stopwatch" class="mr5" />取消终结件
+						<SvgIcon name="ele-Stopwatch" class="mr5" />取消终结件<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #expiredStatusText="{ row }">

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

@@ -30,10 +30,10 @@
 				</template>
 				<template #tableHeader="scope">
 					<el-button type="primary" @click="oncancelObserve" v-auth="'business:order:observe'" :disabled="!scope.isSelected">
-						<SvgIcon name="ele-View" class="mr5" />取消关注
+						<SvgIcon name="ele-View" class="mr5" />取消关注<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 					<el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading"
-					><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出
+					><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #expiredStatusText="{ row }">

+ 9 - 6
src/views/business/order/index.vue

@@ -74,14 +74,17 @@
 						<el-button type="primary" @click="onCreateRepeatEvent" :loading="state.loading">
 							<SvgIcon name="ele-Plus" class="mr5" />创建重复性事件
 						</el-button>
+						<el-button type="primary" @click="onRevoke" :loading="state.loading" v-auth="'business:order:revoke'" :disabled="!scope.isSelected" >
+							<SvgIcon name="ele-Setting" class="mr5" />设置撤销
+						</el-button>
 						<el-button type="primary" @click="onObserve" v-auth="'business:order:observe'" :disabled="!scope.isSelected" :loading="state.loading"
-							>设置观察件
+						>添加关注<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 						</el-button>
 						<el-button type="primary" @click="onEnd" v-auth="'business:order:end'" :disabled="!scope.isSelected" :loading="state.loading"
-							>设置终结件
+						>设置终结件<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 						</el-button>
 						<el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'business:order:jbdExport'"
-							><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出
+						><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 						</el-button>
 					</template>
 					<template #expiredStatusText="{ row }">
@@ -192,13 +195,13 @@
 							<SvgIcon name="ele-Setting" class="mr5" />设置撤销
 						</el-button>
 						<el-button type="primary" @click="onObserve" v-auth="'business:order:observe'" :disabled="!scope.isSelected" :loading="state.loading"
-							>添加关注
+							>添加关注<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 						</el-button>
 						<el-button type="primary" @click="onEnd" v-auth="'business:order:end'" :disabled="!scope.isSelected" :loading="state.loading"
-							>设置终结件
+							>设置终结件<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 						</el-button>
 						<el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'business:order:jbdExport'"
-							><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出
+							><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 						</el-button>
 					</template>
 					<template #expiredStatusText="{ row }">

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

@@ -57,10 +57,10 @@
 				</template>
 				<template #tableHeader="scope">
 					<el-button type="primary" @click="publishMultiple" v-auth="'business:publish:todo:multiple'" :disabled="!scope.isSelected">
-						<SvgIcon name="iconfont icon-tianjiawenjian" class="mr5" />批量发布
+						<SvgIcon name="iconfont icon-tianjiawenjian" class="mr5" />批量发布<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 					<el-button type="primary" @click="onMigration" v-auth="'business:publish:todo:migration'" :disabled="!scope.isSelected">
-						<SvgIcon name="ele-Rank" class="mr5" />平级移动
+						<SvgIcon name="ele-Rank" class="mr5" />平级移动<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #title="{ row }">

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

@@ -56,7 +56,7 @@
 						:disabled="!scope.isSelected"
 						:loading="state.loading"
 						v-auth="'business:return:audit:multiple'"
-						>批量审批
+						>批量审批<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #title="{ row }">

+ 1 - 1
src/views/business/secondHandle/audit.vue

@@ -52,7 +52,7 @@
 				</template>
 				<template #tableHeader="scope">
 					<el-button type="primary" @click="onAuditMultiple" v-auth="'business:secondHandle:audit:multiple'" :disabled="!scope.isSelected" v-if="state.queryParams.Status === 1"
-						>批量审批
+						>批量审批<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #expiredStatusText="{ row }">

+ 1 - 1
src/views/business/special/audit.vue

@@ -31,7 +31,7 @@
 						:disabled="!scope.isSelected"
 						:loading="state.loading"
 						v-auth="'business:special:audit:multiple'"
-						>批量审批
+						>批量审批<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #title="{ row }">

+ 1 - 1
src/views/business/visit/reverse.vue

@@ -40,7 +40,7 @@
 						:loading="state.loading"
 						v-auth="'business:visit:reverse:multiple'"
 						v-if="state.queryParams.IsIngString === 'true'"
-						>批量扭转评判
+						>批量扭转评判<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #expiredStatusText="{ row }">

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

@@ -72,7 +72,7 @@
 						v-if="['ZiGong'].includes(themeConfig.appScope)"
 					>
 						<SvgIcon name="ele-Message" class="mr5" />短信回访</el-button
-					>
+					><span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					<el-button
 						type="primary"
 						@click="batchVisit"
@@ -81,7 +81,7 @@
 						v-if="['ZiGong'].includes(themeConfig.appScope)"
 					>
 						<SvgIcon name="ele-DocumentCopy" class="mr5" />批量回访</el-button
-					>
+					><span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 <!--					<el-button type="primary" @click="multiplePeople" :disabled="!scope.isSelected" v-auth="'business:visit:todo:multiplePeople'">
 						<SvgIcon name="ele-User" class="mr5" />分配回访人</el-button
 					>-->

+ 1 - 1
src/views/dataShare/orderNoCallLog.vue

@@ -44,7 +44,7 @@
 						修改来源渠道
 					</el-button>-->
 					<el-button type="primary" @click="onEdit(true)" :disabled="!scope.isSelected" :loading="state.loading" title="修改并推送">
-						修改并推送
+						修改并推送<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #title="{row}">

+ 1 - 1
src/views/judicial/order/index.vue

@@ -64,7 +64,7 @@
 						v-auth="'judicial:order:verify:multiple'"
 						:disabled="!scope.isSelected"
 						:loading="state.loading"
-						>线索核实
+						>线索核实<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #title="{ row }">

+ 1 - 1
src/views/quality/lexicon/index.vue

@@ -35,7 +35,7 @@
 				<template #tableHeader="scope">
 					<el-button type="primary" @click="onLexiconAdd" v-auth="'quality:lexicon:add'"> <SvgIcon name="ele-Plus" class="mr5" />新增 </el-button>
 					<el-button type="danger" @click="onLexiconDelete" v-auth="'quality:lexicon:delete'" :disabled="!scope.isSelected">
-						<SvgIcon name="ele-Delete" class="mr5" />删除
+						<SvgIcon name="ele-Delete" class="mr5" />删除<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<!-- 表格操作 -->

+ 1 - 1
src/views/quality/project/index.vue

@@ -34,7 +34,7 @@
 						<SvgIcon name="ele-Plus" class="mr5" />新增
 					</el-button>
 					<el-button type="danger" @click="onProjectDelete" v-waves v-auth="'quality:project:delete'" :disabled="!scope.isSelected">
-						<SvgIcon name="ele-Delete" class="mr5" />删除
+						<SvgIcon name="ele-Delete" class="mr5" />删除<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #type="{ row }">

+ 1 - 1
src/views/quality/template/index.vue

@@ -30,7 +30,7 @@
 				<template #tableHeader="scope">
 					<el-button type="primary" @click="onTemplateAdd" v-auth="'quality:template:add'"> <SvgIcon name="ele-Plus" class="mr5" />新增 </el-button>
 					<el-button type="danger" @click="onTemplateDelete" v-auth="'quality:template:delete'" :disabled="!scope.isSelected">
-						<SvgIcon name="ele-Delete" class="mr5" />删除
+						<SvgIcon name="ele-Delete" class="mr5" />删除<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #type="{ row }">

+ 3 - 2
src/views/statistics/call/detailSeatDate.vue

@@ -11,7 +11,7 @@
 				v-model:page-index="state.queryParams.PageIndex"
 				v-model:page-size="state.queryParams.PageSize"
 				:toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"
-				:exportMethod="callDetailListDetailExport"
+				:exportMethod="callDateSimpleDetailExport"
 				:exportParams="requestParams"
 			>
 				<template #table-search>
@@ -77,7 +77,7 @@
 <script setup lang="tsx" name="statisticsCallDetailSeatsDate">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElMessageBox, FormInstance } from 'element-plus';
-import { callDateSimpleDetail, callDateSimpleDetailBase, callDetailListDetail, callDetailListDetailExport } from '@/api/statistics/call';
+import { callDateSimpleDetail, callDateSimpleDetailBase, callDateSimpleDetailExport } from '@/api/statistics/call';
 import { useRoute } from 'vue-router';
 import { formatDate } from '@/utils/formatTime';
 import { fileDownload } from '@/api/public/file';
@@ -150,6 +150,7 @@ const queryList = async () => {
 		requestParams.value = {
 			StartTime: routeQueryParams.StartTime,
 			EndTime: routeQueryParams.EndTime,
+			FieldName: routeQueryParams.FieldName,
 			...state.queryParams,
 		};
 		const { result } = await callDateSimpleDetail(requestParams.value);

+ 1 - 1
src/views/statistics/call/seatsDate.vue

@@ -244,12 +244,12 @@ const getSummaries = (param: any) => {
 // 查看详情
 const router = useRouter();
 const linkDetail = (scope: any) => {
-	console.log(scope)
 	router.push({
 		path: '/statistics/call/detailSeatDate',
 		query: {
 			StartTime: dayjs(scope.row.date).startOf('day').format('YYYY-MM-DD[T]HH:mm:ss'),
 			EndTime: dayjs(scope.row.date).endOf('day').format('YYYY-MM-DD[T]HH:mm:ss'),
+			FieldName:scope.column.property
 		},
 	});
 };

+ 143 - 143
src/views/system/config/holiday/index.vue

@@ -1,66 +1,66 @@
 <template>
-  <div class="system-holidayConfig-container layout-pd">
-    <el-card shadow="never">
-      <el-calendar v-model="today" :range="dateRange" v-loading="loading">
-        <template #header="{ date }">
-          <div class="flex-center-center">
+	<div class="system-holidayConfig-container layout-pd">
+		<el-card shadow="never">
+			<el-calendar v-model="today" :range="dateRange" v-loading="loading">
+				<template #header="{ date }">
+					<div class="flex-center-center">
 						<span class="mr5">选择月份:</span
-            ><el-date-picker v-model="month" type="month" :clearable="false" placeholder="请选择月份" @change="selectMonth" />
-          </div>
-          <el-button-group v-auth="'system:holiday:workDay'">
-            <el-button type="primary" @click="setHoliday" :disabled="!multipleDates.length">
-              <SvgIcon name="ele-Sunny" class="mr3" /> 设定休息日</el-button
-            >
-            <el-button type="primary" @click="setWorkDay" :disabled="!multipleDates.length">
-              <SvgIcon name="ele-Monitor" class="mr3" /> 设定工作日</el-button
-            >
-            <el-button type="primary" @click="clearSelect" :disabled="!multipleDates.length"
-            ><SvgIcon name="ele-Delete" class="mr3" /> 清空选择</el-button
-            >
-          </el-button-group>
-          <!--					<el-button-group>
+						><el-date-picker v-model="month" type="month" :clearable="false" placeholder="请选择月份" @change="selectMonth" />
+					</div>
+					<el-button-group v-auth="'system:holiday:workDay'">
+						<el-button type="primary" @click="setHoliday" :disabled="!multipleDates.length">
+							<SvgIcon name="ele-Sunny" class="mr3" /> 设定休息日<span v-if="multipleDates?.length">({{ multipleDates.length }})</span></el-button
+						>
+						<el-button type="primary" @click="setWorkDay" :disabled="!multipleDates.length">
+							<SvgIcon name="ele-Monitor" class="mr3" /> 设定工作日<span v-if="multipleDates?.length">({{ multipleDates.length }})</span></el-button
+						>
+						<el-button type="primary" @click="clearSelect" :disabled="!multipleDates.length"
+							><SvgIcon name="ele-Delete" class="mr3" /> 清空选择<span v-if="multipleDates?.length">({{ multipleDates.length }})</span></el-button
+						>
+					</el-button-group>
+					<!--					<el-button-group>
             <el-button @click="setWorkTime"><SvgIcon name="ele-AlarmClock" class="mr3" /> 设定工作时间</el-button>
           </el-button-group>-->
-        </template>
-        <template #date-cell="{ data }">
-          <template v-for="item in state.calendarData">
-            <div v-if="data.day === item.currantTime" class="h100">
-              <el-checkbox v-model="item.checked" class="w100 h100">
-                <div>
-                  {{ dayjs(data.day).format('D')
-                  }}<span :class="item.isWorkDay ? 'color-primary' : 'color-success'">({{ item.isWorkDay ? '工作日' : '休息日' }})</span>
-                </div>
-                <div class="lunar" :class="{ 'color-danger font-bold': isFestival(data) }">{{ solarToLunar(data) }}</div>
-              </el-checkbox>
-            </div>
-          </template>
-        </template>
-      </el-calendar>
-    </el-card>
-    <!--  工作时间设置  -->
-    <el-dialog title="设定工作时间" v-model="dialogVisible" width="600px" draggable>
-      <el-form :model="state.ruleForm" ref="ruleFormRef" label-width="120px">
-        <el-row :gutter="35">
-          <el-col>
-            <el-form-item label="休息日工作时间" prop="time" :rules="[{ required: true, message: '请选择休息日工作时间', trigger: 'change' }]">
-              <el-time-picker v-model="state.ruleForm.time" is-range range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" />
-            </el-form-item>
-          </el-col>
-          <el-col>
-            <el-form-item label="工作日工作时间" prop="time1" :rules="[{ required: true, message: '请选择工作日工作时间', trigger: 'change' }]">
-              <el-time-picker v-model="state.ruleForm.time1" is-range range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-      <template #footer>
+				</template>
+				<template #date-cell="{ data }">
+					<template v-for="item in state.calendarData">
+						<div v-if="data.day === item.currantTime" class="h100">
+							<el-checkbox v-model="item.checked" class="w100 h100">
+								<div>
+									{{ dayjs(data.day).format('D')
+									}}<span :class="item.isWorkDay ? 'color-primary' : 'color-success'">({{ item.isWorkDay ? '工作日' : '休息日' }})</span>
+								</div>
+								<div class="lunar" :class="{ 'color-danger font-bold': isFestival(data) }">{{ solarToLunar(data) }}</div>
+							</el-checkbox>
+						</div>
+					</template>
+				</template>
+			</el-calendar>
+		</el-card>
+		<!--  工作时间设置  -->
+		<el-dialog title="设定工作时间" v-model="dialogVisible" width="600px" draggable>
+			<el-form :model="state.ruleForm" ref="ruleFormRef" label-width="120px">
+				<el-row :gutter="35">
+					<el-col>
+						<el-form-item label="休息日工作时间" prop="time" :rules="[{ required: true, message: '请选择休息日工作时间', trigger: 'change' }]">
+							<el-time-picker v-model="state.ruleForm.time" is-range range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" />
+						</el-form-item>
+					</el-col>
+					<el-col>
+						<el-form-item label="工作日工作时间" prop="time1" :rules="[{ required: true, message: '请选择工作日工作时间', trigger: 'change' }]">
+							<el-time-picker v-model="state.ruleForm.time1" is-range range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" />
+						</el-form-item>
+					</el-col>
+				</el-row>
+			</el-form>
+			<template #footer>
 				<span class="dialog-footer">
 					<el-button @click="dialogVisible = false" class="default-button">取 消</el-button>
 					<el-button type="primary" @click="onSubmit(ruleFormRef)" :loading="loading">确 定 </el-button>
 				</span>
-      </template>
-    </el-dialog>
-  </div>
+			</template>
+		</el-dialog>
+	</div>
 </template>
 
 <script setup lang="ts" name="holidayConfig">
@@ -71,11 +71,11 @@ import calendar from '@/utils/calendar.js';
 import { getDaysSetting, setHolidayApi } from '@/api/system/holiday';
 
 const state = reactive<any>({
-  ruleForm: {
-    time: '',
-    time1: '',
-  },
-  calendarData: [], // 日历数据
+	ruleForm: {
+		time: '',
+		time1: '',
+	},
+	calendarData: [], // 日历数据
 });
 const today = ref(new Date()); // 当前日期
 const month = ref(new Date()); // 月份
@@ -83,55 +83,55 @@ const dialogVisible = ref(false); // 是否显示弹窗
 const loading = ref(false); // 加载状态
 // 选择月份
 const selectMonth = async (val: Date) => {
-  state.calendarData = [];
-  const days: number = dayjs(val).daysInMonth();
-  state.calendarData = Array.from({ length: days }, (_, i) => ({
-    currantTime: dayjs(val).startOf('month').add(i, 'day').format('YYYY-MM-DD'),
-    checked: false,
-    isWorkDay: ![0, 6].includes(dayjs(val).startOf('month').add(i, 'day').day()),
-  }));
-  dateRange.value = [new Date(dayjs(val).startOf('month').format('YYYY-MM-DD')), new Date(dayjs(val).endOf('month').format('YYYY-MM-DD'))];
-  await getSetting(dayjs(val).format('YYYY'), dayjs(val).format('MM'));
-  today.value = val;
+	state.calendarData = [];
+	const days: number = dayjs(val).daysInMonth();
+	state.calendarData = Array.from({ length: days }, (_, i) => ({
+		currantTime: dayjs(val).startOf('month').add(i, 'day').format('YYYY-MM-DD'),
+		checked: false,
+		isWorkDay: ![0, 6].includes(dayjs(val).startOf('month').add(i, 'day').day()),
+	}));
+	dateRange.value = [new Date(dayjs(val).startOf('month').format('YYYY-MM-DD')), new Date(dayjs(val).endOf('month').format('YYYY-MM-DD'))];
+	await getSetting(dayjs(val).format('YYYY'), dayjs(val).format('MM'));
+	today.value = val;
 };
 // 日期范围
 const dateRange = ref([
-  new Date(dayjs(today.value).startOf('month').format('YYYY-MM-DD')),
-  new Date(dayjs(today.value).endOf('month').format('YYYY-MM-DD')),
+	new Date(dayjs(today.value).startOf('month').format('YYYY-MM-DD')),
+	new Date(dayjs(today.value).endOf('month').format('YYYY-MM-DD')),
 ]); // 日期范围
 // 设置休息日
 const setHoliday = () => {
-  ElMessageBox.confirm(`您确定要将【${multipleDates.value.map((item: any) => dayjs(item).format('YYYY-MM-DD')).join(',')}】设为休息日吗?`, '提示', {
-    type: 'warning',
-    draggable: true,
-  })
-      .then(() => {
-        setHolidayApi({
-          list: multipleDates.value,
-          isWorkDay: false,
-        }).then(() => {
-          ElMessage.success('设置成功');
-          selectMonth(today.value);
-        });
-      })
-      .catch(() => {});
+	ElMessageBox.confirm(`您确定要将【${multipleDates.value.map((item: any) => dayjs(item).format('YYYY-MM-DD')).join(',')}】设为休息日吗?`, '提示', {
+		type: 'warning',
+		draggable: true,
+	})
+		.then(() => {
+			setHolidayApi({
+				list: multipleDates.value,
+				isWorkDay: false,
+			}).then(() => {
+				ElMessage.success('设置成功');
+				selectMonth(today.value);
+			});
+		})
+		.catch(() => {});
 };
 // 设置工作日
 const setWorkDay = () => {
-  ElMessageBox.confirm(`您确定要将【${multipleDates.value.map((item: any) => dayjs(item).format('YYYY-MM-DD')).join(',')}】设为工作日吗?`, '提示', {
-    type: 'warning',
-    draggable: true,
-  })
-      .then(() => {
-        setHolidayApi({
-          list: multipleDates.value,
-          isWorkDay: true,
-        }).then(() => {
-          ElMessage.success('设置成功');
-          selectMonth(today.value);
-        });
-      })
-      .catch(() => {});
+	ElMessageBox.confirm(`您确定要将【${multipleDates.value.map((item: any) => dayjs(item).format('YYYY-MM-DD')).join(',')}】设为工作日吗?`, '提示', {
+		type: 'warning',
+		draggable: true,
+	})
+		.then(() => {
+			setHolidayApi({
+				list: multipleDates.value,
+				isWorkDay: true,
+			}).then(() => {
+				ElMessage.success('设置成功');
+				selectMonth(today.value);
+			});
+		})
+		.catch(() => {});
 };
 /*// 设置工作时间
 const setWorkTime = () => {
@@ -139,76 +139,76 @@ const setWorkTime = () => {
 };*/
 // 清除选择
 const clearSelect = () => {
-  state.calendarData.forEach((item: any) => {
-    item.checked = false;
-  });
+	state.calendarData.forEach((item: any) => {
+		item.checked = false;
+	});
 };
 // 获取所选中的日期
 const multipleDates = computed(() => {
-  return state.calendarData.filter((item: any) => item.checked).map((item: any) => item.currantTime);
+	return state.calendarData.filter((item: any) => item.checked).map((item: any) => item.currantTime);
 });
 // 表单ref
 const ruleFormRef = ref<RefType>();
 // 表单提交
 const onSubmit = (formEl: FormInstance | undefined) => {
-  if (!formEl) return;
-  formEl.validate((valid: boolean) => {
-    if (!valid) return;
-  });
+	if (!formEl) return;
+	formEl.validate((valid: boolean) => {
+		if (!valid) return;
+	});
 };
 // 获取休息日设置
 const getSetting = async (dateYear: string, dateMoth: string) => {
-  loading.value = true;
-  try {
-    const { result } = await getDaysSetting(dateYear, dateMoth);
-    result.forEach((i: any) => {
-      const item = state.calendarData.find((j: any) => dayjs(i.day).format('YYYY-MM-DD') === j.currantTime);
-      if (item) {
-        item.isWorkDay = i.isWorkDay;
-      }
-    });
-  } catch {
-    // handle error if needed
-  } finally {
-    loading.value = false;
-  }
+	loading.value = true;
+	try {
+		const { result } = await getDaysSetting(dateYear, dateMoth);
+		result.forEach((i: any) => {
+			const item = state.calendarData.find((j: any) => dayjs(i.day).format('YYYY-MM-DD') === j.currantTime);
+			if (item) {
+				item.isWorkDay = i.isWorkDay;
+			}
+		});
+	} catch {
+		// handle error if needed
+	} finally {
+		loading.value = false;
+	}
 };
 // 是否休息日
 const isFestival = (slotData: any) => {
-  let solarDayArr = slotData.day.split('-');
-  let lunarDay: any = calendar.solar2lunar(solarDayArr[0], solarDayArr[1], solarDayArr[2]);
-  return lunarDay.lunarFestival || lunarDay.festival;
+	let solarDayArr = slotData.day.split('-');
+	let lunarDay: any = calendar.solar2lunar(solarDayArr[0], solarDayArr[1], solarDayArr[2]);
+	return lunarDay.lunarFestival || lunarDay.festival;
 };
 // 公历转农历
 const solarToLunar = (slotData: any) => {
-  let solarDayArr = slotData.day.split('-');
-  let lunarDay: any = calendar.solar2lunar(solarDayArr[0], solarDayArr[1], solarDayArr[2]);
-  // 农历日期
-  let lunarMD = lunarDay.IMonthCn + lunarDay.IDayCn;
-  return lunarDay.lunarFestival ? lunarDay.lunarFestival : lunarDay.festival ? lunarDay.festival : lunarMD;
+	let solarDayArr = slotData.day.split('-');
+	let lunarDay: any = calendar.solar2lunar(solarDayArr[0], solarDayArr[1], solarDayArr[2]);
+	// 农历日期
+	let lunarMD = lunarDay.IMonthCn + lunarDay.IDayCn;
+	return lunarDay.lunarFestival ? lunarDay.lunarFestival : lunarDay.festival ? lunarDay.festival : lunarMD;
 };
 onMounted(async () => {
-  const days: number = dayjs(today.value).daysInMonth();
-  state.calendarData = Array.from({ length: days }, (_, i) => ({
-    currantTime: dayjs(today.value).startOf('month').add(i, 'day').format('YYYY-MM-DD'),
-    isWorkDay: ![0, 6].includes(dayjs(today.value).startOf('month').add(i, 'day').day()),
-    checked: false,
-  }));
-  await getSetting(dayjs(today.value).format('YYYY'), dayjs(today.value).format('MM'));
+	const days: number = dayjs(today.value).daysInMonth();
+	state.calendarData = Array.from({ length: days }, (_, i) => ({
+		currantTime: dayjs(today.value).startOf('month').add(i, 'day').format('YYYY-MM-DD'),
+		isWorkDay: ![0, 6].includes(dayjs(today.value).startOf('month').add(i, 'day').day()),
+		checked: false,
+	}));
+	await getSetting(dayjs(today.value).format('YYYY'), dayjs(today.value).format('MM'));
 });
 </script>
 <style scoped lang="scss">
 /**日期div的样式-农历*/
 .el-calendar-table .el-calendar-day > div .lunar {
-  padding-top: 10px;
+	padding-top: 10px;
 }
 :deep(.el-checkbox) {
-  align-items: center;
-  justify-content: center;
+	align-items: center;
+	justify-content: center;
 }
 :deep(.el-checkbox__input) {
-  position: absolute;
-  right: 0;
-  top: 0;
+	position: absolute;
+	right: 0;
+	top: 0;
 }
 </style>

+ 1 - 1
src/views/system/workforce/number.vue

@@ -34,7 +34,7 @@
 						v-auth="'system:workforce:number:deleteMultiple'"
 						:disabled="!scope.isSelected"
 						:loading="state.loading"
-						><SvgIcon name="ele-Delete" class="mr5" />删除
+						><SvgIcon name="ele-Delete" class="mr5" />删除<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #operation="{ row }">

+ 1 - 1
src/views/system/workforce/staff.vue

@@ -34,7 +34,7 @@
 						v-auth="'system:workforce:staff:deleteMultiple'"
 						:disabled="!scope.isSelected"
 						:loading="state.loading"
-						><SvgIcon name="ele-Delete" class="mr5" />删除
+						><SvgIcon name="ele-Delete" class="mr5" />删除<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<!-- 表格操作 -->

+ 3 - 3
src/views/tels/callLog/ybCallLog.vue

@@ -67,7 +67,7 @@
 				v-else-if="state.queryParams.type === '1'"
 			>
 				<template #tableHeader="scope">
-					<el-button type="primary" @click="onTransferOrder" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'tels:callLog:recordTransfer'">录音转写</el-button>
+					<el-button type="primary" @click="onTransferOrder" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'tels:callLog:recordTransfer'">录音转写<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span></el-button>
 				</template>
 				<template #table-search>
 					<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
@@ -118,7 +118,7 @@
 				v-else-if="state.queryParams.type === '2'"
 			>
 				<template #tableHeader="scope">
-					<el-button type="primary" @click="onTransferOrder" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'tels:callLog:recordTransfer'">录音转写</el-button>
+					<el-button type="primary" @click="onTransferOrder" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'tels:callLog:recordTransfer'">录音转写<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span></el-button>
 				</template>
 				<template #table-search>
 					<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
@@ -228,7 +228,7 @@
 					</el-form>
 				</template>
 				<template #tableHeader="scope">
-					<el-button type="primary" @click="onTransferOrder" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'tels:callLog:recordTransfer'">录音转写</el-button>
+					<el-button type="primary" @click="onTransferOrder" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'tels:callLog:recordTransfer'">录音转写<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span></el-button>
 				</template>
 				<template #operation="{ row }">
 					<el-button type="primary" @click="onPlaySoundRecording(row)" title="播放录音" link v-if=" row.recordingAbsolutePath && row.otherAccept">播放录音</el-button>

+ 1 - 1
src/views/todo/center/index.vue

@@ -28,7 +28,7 @@
 				</template>
 				<template #tableHeader="scope">
 					<el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'todo:center:jbdExport'"
-						><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出
+						><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #expiredStatusText="{ row }">

+ 1 - 1
src/views/todo/order/index.vue

@@ -32,7 +32,7 @@
 				</template>
 				<template #tableHeader="scope">
 					<el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'todo:seats:jbdExport'"
-						><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出
+						><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #expiredStatusText="{ row }">

+ 2 - 2
src/views/todo/seats/index.vue

@@ -35,7 +35,7 @@
 						<SvgIcon name="ele-Plus" class="mr5" />新建工单
 					</el-button>
 					<el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'todo:order:jbdExport'"
-						><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出
+						><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
 					</el-button>
 				</template>
 				<template #expiredStatusText="{ row }">
@@ -156,7 +156,7 @@
 	</div>
 </template>
 <script setup lang="tsx" name="todoSeats">
-import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
+import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
 import { formatDate } from '@/utils/formatTime';
 import { useRouter } from 'vue-router';