ソースを参照

reactor:element-plus 版本更新;

zhangchong 9 ヶ月 前
コミット
be10c6cf9b

+ 3 - 3
.env.development

@@ -3,11 +3,11 @@ VITE_MODE_NAME=development
 # 防止部署多套系统到同一域名不同目录时,变量共用的问题 设置不同的前缀
 VITE_STORAGE_NAME=dev
 # 基础请求地址
-VITE_API_URL=http://110.188.24.28:50300
+VITE_API_URL=http://110.188.24.28:50100
 # 数据共享平台请求地址
 VITE_DATASHARE_API_YRL=http://ds.12345lm.cn
 # socket API
-VITE_API_SOCKET_URL=http://110.188.24.28:50300/hubs/hotline
+VITE_API_SOCKET_URL=http://110.188.24.28:50100/hubs/hotline
 # 上传 API
 VITE_API_UPLOAD_URL=http://110.188.24.28:50120
 # 文件上传地址前缀
@@ -25,4 +25,4 @@ VITE_JTHS_API_URL=http://118.121.58.161:19021
 # 捷通华声AppKey
 VITE_JTHS_APPKEY=MTAwMDAx
 # 当前地州市
-VITE_CURRENT_CITY=zigong
+VITE_CURRENT_CITY=yibin

+ 0 - 1
package.json

@@ -59,7 +59,6 @@
 		"@vitejs/plugin-vue-jsx": "^3.1.0",
 		"@vue/compiler-sfc": "^3.2.45",
 		"@vueuse/core": "^10.11.0",
-		"@vueuse/nuxt": "^10.11.0",
 		"dotenv": "^16.0.3",
 		"eslint": "^8.28.0",
 		"eslint-plugin-vue": "^9.7.0",

+ 0 - 2
src/layout/navBars/breadcrumb/user.vue

@@ -154,7 +154,6 @@
 
 <script setup lang="ts" name="layoutBreadcrumbUser">
 import { defineAsyncComponent, ref, computed, reactive, onMounted, onUnmounted } from 'vue';
-import { useRouter } from 'vue-router';
 import { ElMessageBox, ElMessage, ElNotification, FormInstance } from 'element-plus';
 import screenfull from 'screenfull';
 import { storeToRefs } from 'pinia';
@@ -172,7 +171,6 @@ import { callCenterIsOnThePhone, callCenterIsSignIn, callCenterLogout } from '@/
 const UserNews = defineAsyncComponent(() => import('@/layout/navBars/breadcrumb/userNews.vue'));
 const Search = defineAsyncComponent(() => import('@/layout/navBars/breadcrumb/search.vue'));
 
-const router = useRouter();
 const stores = useUserInfo();
 const storesThemeConfig = useThemeConfig();
 const { userInfos } = storeToRefs(stores);

+ 14 - 4
src/views/business/countersign/index.vue

@@ -6,10 +6,20 @@
 				<el-row :gutter="10">
           <el-col>
             <el-form-item label="快捷查询" prop="fastSearch">
-              <el-radio-group v-model="fastSearch" @change="fastSearchChange">
-                <el-radio-button label="InitiatedCountersignature">发起的会签</el-radio-button>
-                <el-radio-button label="HandleCountersignature">已办会签</el-radio-button>
-              </el-radio-group>
+              <el-segmented
+                  :options="[
+									{
+										value: 'InitiatedCountersignature',
+										label: '发起的会签',
+									},
+									{
+										value: 'HandleCountersignature',
+										label: '已办会签',
+									},
+								]"
+                  v-model="fastSearch"
+                  @change="fastSearchChange"
+              />
             </el-form-item>
           </el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">

+ 20 - 7
src/views/business/discern/apply.vue

@@ -5,12 +5,25 @@
 			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
 				<el-row>
           <el-col>
-            <el-form-item label="快捷查询" prop="fastSearch">
-              <el-radio-group v-model="fastSearch" @change="fastSearchChange">
-                <el-radio-button label="all">全部</el-radio-button>
-                <el-radio-button label="city">市工单</el-radio-button>
-                <el-radio-button label="province">省工单</el-radio-button>
-              </el-radio-group>
+            <el-form-item label="快捷查询" prop="IsProvince">
+              <el-segmented
+                  :options="[
+									{
+										value: '',
+										label: '全部',
+									},
+									{
+										value: 'false',
+										label: '市工单',
+									},
+									{
+										value: 'true',
+										label: '省工单',
+									},
+								]"
+                  v-model="state.queryParams.IsProvince"
+                  @change="handleQuery"
+              />
             </el-form-item>
           </el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
@@ -304,7 +317,7 @@ const state = reactive<any>({
 		PageIndex: 1,
 		PageSize: 10,
 		Keyword: null, // 关键字
-		IsProvince: null,
+		IsProvince: '',
 		IsHomePage: null,
 		CounterSignType: null, // 会签类型
 		OrgLevelOneName: null, // 一级部门

+ 316 - 331
src/views/business/order/copy-index.vue

@@ -5,272 +5,273 @@
 				<el-row :gutter="0">
 					<el-col>
 						<el-form-item label="快捷查询" prop="fastSearch">
-							<el-radio-group v-model="fastSearch" @change="fastSearchChange">
-								<el-radio-button label="all">全部</el-radio-button>
-								<el-radio-button label="city">市工单</el-radio-button>
-								<el-radio-button label="province">省工单</el-radio-button>
-							</el-radio-group>
+              <el-segmented
+                  :options="[
+									{
+										value: '',
+										label: '全部',
+									},
+									{
+										value: 'false',
+										label: '市工单',
+									},
+									{
+										value: 'true',
+										label: '省工单',
+									},
+								]"
+                  v-model="state.queryParams.IsProvinceOrder"
+                  @change="handleQuery"
+              />
 							<el-checkbox-group v-model="checkList" @change="changeCheckList" class="ml15">
-								<el-checkbox label="IsSensitiveWord" border>敏感类工单</el-checkbox>
+								<el-checkbox value="IsSensitiveWord" border>敏感类工单</el-checkbox>
 							</el-checkbox-group>
 						</el-form-item>
 					</el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-            <el-form-item label="工单标题" prop="Keyword">
-              <el-input v-model="state.queryParams.Keyword" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-            <el-form-item label="工单编码" prop="No">
-              <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-            <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-col>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol && checkList.includes('IsSensitiveWord')">
-              <el-form-item label="敏感词" prop="SensitiveWord">
-                <el-input v-model="state.queryParams.SensitiveWord" placeholder="敏感词" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top" v-show="!searchCol">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-              <el-form-item label="来电人姓名" prop="FromName">
-                <el-input v-model="state.queryParams.FromName" placeholder="来电人姓名" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top" v-show="!searchCol">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-              <el-form-item label="事发地址" prop="AreaCode">
-                <el-cascader
-                    :options="state.areaOptions"
-                    filterable
-                    :props="{ checkStrictly: true, value: 'id', label: 'areaName',emitPath:false }"
-                    placeholder="请选择事发地址"
-                    clearable
-                    class="w100"
-                    v-model="state.queryParams.AreaCode"
-                    @change="handleQuery"
-                >
-                </el-cascader>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top" v-show="!searchCol">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-              <el-form-item label="是否紧急" prop="IsUrgent">
-                <el-select v-model="state.queryParams.IsUrgent" placeholder="请选择是否紧急" clearable class="w100" @change="handleQuery">
-                  <el-option :value="true" label="紧急" />
-                  <el-option :value="false" label="不紧急" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top" v-show="!searchCol">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-              <el-form-item label="转接来源" prop="TransferPhone">
-                <el-input v-model="state.queryParams.TransferPhone" placeholder="转接来源" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="工单状态" prop="Status">
-                <el-select v-model="state.queryParams.Status" placeholder="请选择工单状态" clearable class="w100" @change="handleQuery">
-                  <el-option v-for="item in state.orderStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="受理类型" prop="AcceptType">
-                <el-select
-                    v-model="state.queryParams.AcceptType"
-                    placeholder="请选择受理类型"
-                    clearable
-                    class="w100"
-                    @change="handleQuery"
-                >
-                  <el-option v-for="item in state.acceptTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="来源渠道" prop="Channel">
-                <el-select
-                    v-model="state.queryParams.Channel"
-                    placeholder="请选择来源渠道"
-                    clearable
-                    class="w100"
-                    @change="handleQuery"
-                >
-                  <el-option v-for="item in state.channelOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="热点分类" prop="Hotspot">
-                <el-input v-model="state.queryParams.Hotspot" placeholder="热点分类名称" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="接办部门" prop="OrgId">
-                <el-cascader
-                    :options="state.orgsOptions"
-                    filterable
-                    :props="{ checkStrictly: true, value: 'id', label: 'name', emitPath: false }"
-                    placeholder="请选择接办部门"
-                    clearable
-                    class="w100"
-                    v-model="state.queryParams.OrgId"
-                    ref="cascadeRef"
-                    @change="handleQuery"
-                >
-                </el-cascader>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="受理人" prop="NameOrNo">
-                <el-input v-model="state.queryParams.NameOrNo" placeholder="受理人/坐席工号" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="省工单编码" prop="ProvinceNo">
-                <el-input v-model="state.queryParams.ProvinceNo" placeholder="省工单编码" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="来电号码" prop="FromPhone">
-                <el-input v-model="state.queryParams.FromPhone" placeholder="来电号码" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="联系电话" prop="PhoneNo">
-                <el-input v-model="state.queryParams.PhoneNo" placeholder="联系电话" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="推送分类" prop="PushTypeCode">
-                <el-select v-model="state.queryParams.PushTypeCode" placeholder="请选择推送分类" clearable class="w100" @change="handleQuery">
-                  <el-option v-for="item in state.pushTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="期满时间" prop="exTime">
-                <el-date-picker
-                    v-model="state.queryParams.exTime"
-                    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-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="接办人" prop="ActualHandlerName">
-                <el-input v-model="state.queryParams.ActualHandlerName" placeholder="接办人" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="是否甄别" prop="IsScreen">
-                <el-select v-model="state.queryParams.IsScreen" placeholder="请选择是否甄别" class="w100" clearable @change="handleQuery">
-                  <el-option label="是" :value="true" />
-                  <el-option label="否" :value="false" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="办理节点" prop="CurrentStepCode">
-                <el-select v-model="state.queryParams.CurrentStepCode" placeholder="请选择办理节点" clearable class="w100" @change="handleQuery">
-                  <el-option v-for="item in state.currentStepOptions" :value="item.key" :key="item.key" :label="item.value" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="办结时间" prop="doneTime">
-                <el-date-picker
-                    v-model="state.queryParams.doneTime"
-                    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-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="是否超期" prop="IsOverTime">
-                <el-select v-model="state.queryParams.IsOverTime" placeholder="请选择是否超期" class="w100" clearable @change="handleQuery">
-                  <el-option label="是" :value="true" />
-                  <el-option label="否" :value="false" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="来电主体" prop="IdentityType">
-                <el-select v-model="state.queryParams.IdentityType" placeholder="请选择来电主体" clearable class="w100" @change="handleQuery">
-                  <el-option v-for="item in state.identityTypeOptions" :value="item.key" :key="item.key" :label="item.value" />
-                </el-select>
-              </el-form-item>
-            </el-col>
-          </transition>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+						<el-form-item label="工单标题" prop="Keyword">
+							<el-input v-model="state.queryParams.Keyword" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+						<el-form-item label="工单编码" prop="No">
+							<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+						<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-col>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol && checkList.includes('IsSensitiveWord')">
+							<el-form-item label="敏感词" prop="SensitiveWord">
+								<el-input v-model="state.queryParams.SensitiveWord" placeholder="敏感词" clearable @keyup.enter="handleQuery" />
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top" v-show="!searchCol">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+							<el-form-item label="来电人姓名" prop="FromName">
+								<el-input v-model="state.queryParams.FromName" placeholder="来电人姓名" clearable @keyup.enter="handleQuery" />
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top" v-show="!searchCol">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+							<el-form-item label="事发地址" prop="AreaCode">
+								<el-cascader
+									:options="state.areaOptions"
+									filterable
+									:props="{ checkStrictly: true, value: 'id', label: 'areaName', emitPath: false }"
+									placeholder="请选择事发地址"
+									clearable
+									class="w100"
+									v-model="state.queryParams.AreaCode"
+									@change="handleQuery"
+								>
+								</el-cascader>
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top" v-show="!searchCol">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+							<el-form-item label="是否紧急" prop="IsUrgent">
+								<el-select v-model="state.queryParams.IsUrgent" placeholder="请选择是否紧急" clearable class="w100" @change="handleQuery">
+									<el-option :value="true" label="紧急" />
+									<el-option :value="false" label="不紧急" />
+								</el-select>
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top" v-show="!searchCol">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+							<el-form-item label="转接来源" prop="TransferPhone">
+								<el-input v-model="state.queryParams.TransferPhone" placeholder="转接来源" clearable @keyup.enter="handleQuery" />
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="工单状态" prop="Status">
+								<el-select v-model="state.queryParams.Status" placeholder="请选择工单状态" clearable class="w100" @change="handleQuery">
+									<el-option v-for="item in state.orderStatusOptions" :value="item.key" :key="item.key" :label="item.value" />
+								</el-select>
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="受理类型" prop="AcceptType">
+								<el-select v-model="state.queryParams.AcceptType" placeholder="请选择受理类型" clearable class="w100" @change="handleQuery">
+									<el-option v-for="item in state.acceptTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+								</el-select>
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="来源渠道" prop="Channel">
+								<el-select v-model="state.queryParams.Channel" placeholder="请选择来源渠道" clearable class="w100" @change="handleQuery">
+									<el-option v-for="item in state.channelOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+								</el-select>
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="热点分类" prop="Hotspot">
+								<el-input v-model="state.queryParams.Hotspot" placeholder="热点分类名称" clearable @keyup.enter="handleQuery" />
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="接办部门" prop="OrgId">
+								<el-cascader
+									:options="state.orgsOptions"
+									filterable
+									:props="{ checkStrictly: true, value: 'id', label: 'name', emitPath: false }"
+									placeholder="请选择接办部门"
+									clearable
+									class="w100"
+									v-model="state.queryParams.OrgId"
+									ref="cascadeRef"
+									@change="handleQuery"
+								>
+								</el-cascader>
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="受理人" prop="NameOrNo">
+								<el-input v-model="state.queryParams.NameOrNo" placeholder="受理人/坐席工号" clearable @keyup.enter="handleQuery" />
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="省工单编码" prop="ProvinceNo">
+								<el-input v-model="state.queryParams.ProvinceNo" placeholder="省工单编码" clearable @keyup.enter="handleQuery" />
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="来电号码" prop="FromPhone">
+								<el-input v-model="state.queryParams.FromPhone" placeholder="来电号码" clearable @keyup.enter="handleQuery" />
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="联系电话" prop="PhoneNo">
+								<el-input v-model="state.queryParams.PhoneNo" placeholder="联系电话" clearable @keyup.enter="handleQuery" />
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="推送分类" prop="PushTypeCode">
+								<el-select v-model="state.queryParams.PushTypeCode" placeholder="请选择推送分类" clearable class="w100" @change="handleQuery">
+									<el-option v-for="item in state.pushTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
+								</el-select>
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="期满时间" prop="exTime">
+								<el-date-picker
+									v-model="state.queryParams.exTime"
+									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-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="接办人" prop="ActualHandlerName">
+								<el-input v-model="state.queryParams.ActualHandlerName" placeholder="接办人" clearable @keyup.enter="handleQuery" />
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="是否甄别" prop="IsScreen">
+								<el-select v-model="state.queryParams.IsScreen" placeholder="请选择是否甄别" class="w100" clearable @change="handleQuery">
+									<el-option label="是" :value="true" />
+									<el-option label="否" :value="false" />
+								</el-select>
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="办理节点" prop="CurrentStepCode">
+								<el-select v-model="state.queryParams.CurrentStepCode" placeholder="请选择办理节点" clearable class="w100" @change="handleQuery">
+									<el-option v-for="item in state.currentStepOptions" :value="item.key" :key="item.key" :label="item.value" />
+								</el-select>
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="办结时间" prop="doneTime">
+								<el-date-picker
+									v-model="state.queryParams.doneTime"
+									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-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="是否超期" prop="IsOverTime">
+								<el-select v-model="state.queryParams.IsOverTime" placeholder="请选择是否超期" class="w100" clearable @change="handleQuery">
+									<el-option label="是" :value="true" />
+									<el-option label="否" :value="false" />
+								</el-select>
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
+							<el-form-item label="来电主体" prop="IdentityType">
+								<el-select v-model="state.queryParams.IdentityType" placeholder="请选择来电主体" clearable class="w100" @change="handleQuery">
+									<el-option v-for="item in state.identityTypeOptions" :value="item.key" :key="item.key" :label="item.value" />
+								</el-select>
+							</el-form-item>
+						</el-col>
+					</transition>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
 						<el-form-item label=" ">
 							<div class="flex-end w100">
@@ -305,7 +306,7 @@
 					:key="Math.random()"
 				>
 					<template #tableHeader="scope">
-<!--						<el-button
+						<!--						<el-button
 							type="primary"
 							@click="onProvinceReturn"
 							v-auth="'business:order:returnBatch'"
@@ -335,16 +336,16 @@
 					</template>
 					<!-- 表格操作 -->
 					<template #operation="{ row }">
-            <el-button
-                link
-                type="danger"
-                @click="onReturn(row)"
-                title="省工单退回"
-                v-auth="'business:order:return'"
-                v-if="row.source > 1 && row.status <= 1 && row.canSign"
-            >
-              退回</el-button
-            >
+						<el-button
+							link
+							type="danger"
+							@click="onReturn(row)"
+							title="省工单退回"
+							v-auth="'business:order:return'"
+							v-if="row.source > 1 && row.status <= 1 && row.canSign"
+						>
+							退回</el-button
+						>
 						<!--					<el-button link type="primary" @click="onSign(row)" title="签收工单" v-if="row.canSign" v-auth="'business:order:sign'"> 签收 </el-button>
                   <el-button link type="success" @click="onOrderEdit(row)" title="编辑工单" v-if="row.canEdit" v-auth="'business:order:edit'">
                     修改
@@ -446,39 +447,39 @@ const state = reactive<any>({
 		PageIndex: 1, // 当前页
 		PageSize: 10, // 每页条数
 		// 查询条件
-    No: null, // 工单编码
-    ProvinceNo: null, // 省工单编码
-    ActualHandlerName: null, // 接办人
-    IsScreen: null, // 是否甄别
-    CurrentStepCode: null, // 办理节点
-    IsOverTime: null, // 是否超期
-    FromName: null, // 来电人姓名
-    AreaCode: null,// 事发地址
-    FromPhone: null, // 来电号码
-    Keyword: null, // 关键字
-    Content: null, // 工单内容
-    AcceptType: null, // 受理类型
-    Channels: null, // 渠道
-    Hotspot: null, //  热点分类名称
-    OrgId: null, // 接办部门
-    NameOrNo: null, // 受理坐席
-    crTime: [], // 生成时间
-    CreationTimeStart: null, // 创建时间 开始
-    CreationTimeEnd: null, // 创建时间 结束
-    Status: null, // 工单状态
-    TransferPhone: null, // 转接来源
-    exTime: [], // 过期时间
-    ExpiredTimeStart: null, //办理期限 开始
-    ExpiredTimeEnd: null, //办理期限 结束
-    PhoneNo: null, // 手机号
-    doneTime: [], // 办结时间
-    ActualHandleTimeStart: null,
-    ActualHandleTimeEnd: null,
-    PushTypeCode: null, //推送类型
-    IsProvinceOrder: null, // 省市工单
-    IsSensitiveWord: null, // 是否敏感词工单
-    SensitiveWord: null, // 敏感词
-    IsUrgent: null, // 是否加急
+		No: null, // 工单编码
+		ProvinceNo: null, // 省工单编码
+		ActualHandlerName: null, // 接办人
+		IsScreen: null, // 是否甄别
+		CurrentStepCode: null, // 办理节点
+		IsOverTime: null, // 是否超期
+		FromName: null, // 来电人姓名
+		AreaCode: null, // 事发地址
+		FromPhone: null, // 来电号码
+		Keyword: null, // 关键字
+		Content: null, // 工单内容
+		AcceptType: null, // 受理类型
+		Channels: null, // 渠道
+		Hotspot: null, //  热点分类名称
+		OrgId: null, // 接办部门
+		NameOrNo: null, // 受理坐席
+		crTime: [], // 生成时间
+		CreationTimeStart: null, // 创建时间 开始
+		CreationTimeEnd: null, // 创建时间 结束
+		Status: null, // 工单状态
+		TransferPhone: null, // 转接来源
+		exTime: [], // 过期时间
+		ExpiredTimeStart: null, //办理期限 开始
+		ExpiredTimeEnd: null, //办理期限 结束
+		PhoneNo: null, // 手机号
+		doneTime: [], // 办结时间
+		ActualHandleTimeStart: null,
+		ActualHandleTimeEnd: null,
+		PushTypeCode: null, //推送类型
+		IsProvinceOrder: '', // 省市工单
+		IsSensitiveWord: null, // 是否敏感词工单
+		SensitiveWord: null, // 敏感词
+		IsUrgent: null, // 是否加急
 	},
 	tableData: [], //表单
 	loading: false, // 加载
@@ -493,22 +494,6 @@ const state = reactive<any>({
 	orgData: [], // 机构数据
 	areaOptions: [], // 省市区数据
 });
-const fastSearch = ref('all'); // tab位置
-const fastSearchChange = (val: string) => {
-	fastSearch.value = val;
-	switch (val) {
-		case 'all':
-			state.queryParams.IsProvinceOrder = null;
-			break;
-		case 'city':
-			state.queryParams.IsProvinceOrder = false;
-			break;
-		case 'province':
-			state.queryParams.IsProvinceOrder = true;
-			break;
-	}
-	handleQuery();
-};
 const checkList = ref([]);
 // 是否展示总数
 const showTotal = ref(false);
@@ -533,11 +518,11 @@ const route = useRoute(); // 路由
 const router = useRouter(); // 路由
 const proTableRef = ref<RefType>(); // 表格ref
 const selectable = (row: any) => {
-	if (state.queryParams.IsProvinceOrder) {
-		return row?.isProvince && row?.source > 1 && row?.status <= 1;
-	} else {
-		return true;
-	}
+  if (state.queryParams.IsProvinceOrder === 'true') {
+    return row?.isProvince && row?.source > 1 && row?.status <= 1;
+  } else {
+    return true;
+  }
 };
 // 表格配置项
 const columns = ref<any[]>([
@@ -554,7 +539,7 @@ const columns = ref<any[]>([
 		},
 	},
 	{ prop: 'currentStepName', label: '办理节点', minWidth: 100 },
-  { prop: 'currentStepAcceptText', label: '受理情况' },
+	{ prop: 'currentStepAcceptText', label: '受理情况' },
 	{ prop: 'statusText', label: '工单状态', minWidth: 100 },
 	{ prop: 'title', label: '工单标题', minWidth: 200 },
 	{
@@ -587,7 +572,7 @@ const columns = ref<any[]>([
 	{ prop: 'counterSignTypeText', label: '是否会签', minWidth: 90 },
 	{ prop: 'sourceChannel', label: '来源渠道', minWidth: 100 },
 	{ prop: 'hotspotName', label: '热点分类', minWidth: 150 },
-  { prop: 'acceptorName', label: '受理人', minWidth: 120 },
+	{ prop: 'acceptorName', label: '受理人', minWidth: 120 },
 	{
 		prop: 'sensitiveText',
 		label: '敏感词',
@@ -692,7 +677,7 @@ const queryList = (isQuery: boolean = false) => {
 		Reflect.deleteProperty(requestParams.value, 'PageSize'); // 删除无用的参数
 		requestParams.value.QueryIndex = queryIndex.value; // 数据批次
 		state.loading = true;
-    orderListFixed(requestParams.value)
+		orderListFixed(requestParams.value)
 			.then((response: any) => {
 				if (isQuery) {
 					// 如果是查询
@@ -718,7 +703,7 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.resetFields();
 	state.queryParams.IsSensitiveWord = null;
-	state.queryParams.IsProvinceOrder = null;
+	state.queryParams.IsProvinceOrder = '';
 	fastSearch.value = 'all';
 	checkList.value = [];
 	queryIndex.value = 0;

+ 53 - 68
src/views/business/order/index.vue

@@ -5,13 +5,26 @@
 				<el-row>
 					<el-col>
 						<el-form-item label="快捷查询" prop="fastSearch">
-							<el-radio-group v-model="fastSearch" @change="fastSearchChange">
-								<el-radio-button label="all">全部</el-radio-button>
-								<el-radio-button label="city">市工单</el-radio-button>
-								<el-radio-button label="province">省工单</el-radio-button>
-							</el-radio-group>
+							<el-segmented
+								:options="[
+									{
+										value: '',
+										label: '全部',
+									},
+									{
+										value: 'false',
+										label: '市工单',
+									},
+									{
+										value: 'true',
+										label: '省工单',
+									},
+								]"
+								v-model="state.queryParams.IsProvinceOrder"
+								@change="handleQuery"
+							/>
 							<el-checkbox-group v-model="checkList" @change="changeCheckList" class="ml15">
-								<el-checkbox label="IsSensitiveWord" border>敏感类工单</el-checkbox>
+								<el-checkbox value="IsSensitiveWord" border>敏感类工单</el-checkbox>
 							</el-checkbox-group>
 						</el-form-item>
 					</el-col>
@@ -61,12 +74,12 @@
 								<el-cascader
 									:options="state.areaOptions"
 									filterable
-									:props="{ checkStrictly: true, value: 'id', label: 'areaName',emitPath:false }"
+									:props="{ checkStrictly: true, value: 'id', label: 'areaName', emitPath: false }"
 									placeholder="请选择事发地址"
 									clearable
 									class="w100"
 									v-model="state.queryParams.AreaCode"
-                  @change="handleQuery"
+									@change="handleQuery"
 								>
 								</el-cascader>
 							</el-form-item>
@@ -101,13 +114,7 @@
 					<transition name="el-zoom-in-top">
 						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
 							<el-form-item label="受理类型" prop="AcceptType">
-								<el-select
-									v-model="state.queryParams.AcceptType"
-									placeholder="请选择受理类型"
-									clearable
-									class="w100"
-                  @change="handleQuery"
-								>
+								<el-select v-model="state.queryParams.AcceptType" placeholder="请选择受理类型" clearable class="w100" @change="handleQuery">
 									<el-option v-for="item in state.acceptTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
 								</el-select>
 							</el-form-item>
@@ -116,13 +123,7 @@
 					<transition name="el-zoom-in-top">
 						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
 							<el-form-item label="来源渠道" prop="Channel">
-								<el-select
-									v-model="state.queryParams.Channel"
-									placeholder="请选择来源渠道"
-									clearable
-									class="w100"
-                  @change="handleQuery"
-								>
+								<el-select v-model="state.queryParams.Channel" placeholder="请选择来源渠道" clearable class="w100" @change="handleQuery">
 									<el-option v-for="item in state.channelOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
 								</el-select>
 							</el-form-item>
@@ -131,26 +132,26 @@
 					<transition name="el-zoom-in-top">
 						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
 							<el-form-item label="热点分类" prop="Hotspot">
-                <el-input v-model="state.queryParams.Hotspot" placeholder="热点分类名称" clearable @keyup.enter="handleQuery" />
+								<el-input v-model="state.queryParams.Hotspot" placeholder="热点分类名称" clearable @keyup.enter="handleQuery" />
 							</el-form-item>
 						</el-col>
 					</transition>
 					<transition name="el-zoom-in-top">
 						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
-              <el-form-item label="接办部门" prop="OrgId">
-                <el-cascader
-                    :options="state.orgsOptions"
-                    filterable
-                    :props="{ checkStrictly: true, value: 'id', label: 'name', emitPath: false }"
-                    placeholder="请选择接办部门"
-                    clearable
-                    class="w100"
-                    v-model="state.queryParams.OrgId"
-                    ref="cascadeRef"
-                    @change="handleQuery"
-                >
-                </el-cascader>
-              </el-form-item>
+							<el-form-item label="接办部门" prop="OrgId">
+								<el-cascader
+									:options="state.orgsOptions"
+									filterable
+									:props="{ checkStrictly: true, value: 'id', label: 'name', emitPath: false }"
+									placeholder="请选择接办部门"
+									clearable
+									class="w100"
+									v-model="state.queryParams.OrgId"
+									ref="cascadeRef"
+									@change="handleQuery"
+								>
+								</el-cascader>
+							</el-form-item>
 						</el-col>
 					</transition>
 					<transition name="el-zoom-in-top">
@@ -392,19 +393,19 @@ const state = reactive<any>({
 		CurrentStepCode: null, // 办理节点
 		IsOverTime: null, // 是否超期
 		FromName: null, // 来电人姓名
-		AreaCode: null,// 事发地址
+		AreaCode: null, // 事发地址
 		FromPhone: null, // 来电号码
 		Keyword: null, // 关键字
 		Content: null, // 工单内容
-    AcceptType: null, // 受理类型
+		AcceptType: null, // 受理类型
 		Channels: null, // 渠道
-    Hotspot: null, //  热点分类名称
-    OrgId: null, // 接办部门
+		Hotspot: null, //  热点分类名称
+		OrgId: null, // 接办部门
 		NameOrNo: null, // 受理坐席
 		crTime: defaultDateOne, // 生成时间
 		CreationTimeStart: null, // 创建时间 开始
 		CreationTimeEnd: null, // 创建时间 结束
-    Status: null, // 工单状态
+		Status: null, // 工单状态
 		TransferPhone: null, // 转接来源
 		exTime: [], // 过期时间
 		ExpiredTimeStart: null, //办理期限 开始
@@ -414,7 +415,7 @@ const state = reactive<any>({
 		ActualHandleTimeStart: null,
 		ActualHandleTimeEnd: null,
 		PushTypeCode: null, //推送类型
-		IsProvinceOrder: null, // 省市工单
+		IsProvinceOrder: '', // 省市工单
 		IsSensitiveWord: null, // 是否敏感词工单
 		SensitiveWord: null, // 敏感词
 		IsUrgent: null, // 是否加急
@@ -431,22 +432,6 @@ const state = reactive<any>({
 	pushTypeOptions: [], //推送分类
 	areaOptions: [], // 省市区数据
 });
-const fastSearch = ref('all'); // tab位置
-const fastSearchChange = (val: string) => {
-	fastSearch.value = val;
-	switch (val) {
-		case 'all':
-			state.queryParams.IsProvinceOrder = null;
-			break;
-		case 'city':
-			state.queryParams.IsProvinceOrder = false;
-			break;
-		case 'province':
-			state.queryParams.IsProvinceOrder = true;
-			break;
-	}
-	handleQuery();
-};
 const checkList = ref([]);
 // 多选
 const changeCheckList = () => {
@@ -464,7 +449,7 @@ const route = useRoute(); // 路由
 const router = useRouter(); // 路由
 const proTableRef = ref<RefType>(); // 表格ref
 const selectable = (row: any) => {
-	if (state.queryParams.IsProvinceOrder) {
+	if (state.queryParams.IsProvinceOrder === 'true') {
 		return row?.isProvince && row?.source > 1 && row?.status <= 1;
 	} else {
 		return true;
@@ -476,7 +461,7 @@ const columns = ref<any[]>([
 	{ prop: 'expiredStatusText', label: '超期状态', align: 'center', minWidth: 80 },
 	{ prop: 'no', label: '工单编码', minWidth: 140 },
 	{ prop: 'isProvinceText', label: '省/市工单', minWidth: 90 },
-  { prop: 'reTransactNum', label: '重办次数' },
+	{ prop: 'reTransactNum', label: '重办次数' },
 	{
 		prop: 'isUrgentText',
 		label: '是否紧急',
@@ -485,13 +470,13 @@ const columns = ref<any[]>([
 		},
 	},
 	{ prop: 'currentStepName', label: '办理节点', minWidth: 100 },
-  { prop: 'currentStepAcceptText', label: '受理情况' },
+	{ prop: 'currentStepAcceptText', label: '受理情况' },
 	{ prop: 'statusText', label: '工单状态', minWidth: 100 },
 	{ prop: 'title', label: '工单标题', minWidth: 200 },
 	{
 		prop: 'startTime',
 		label: '受理时间',
-    minWidth: 160,
+		minWidth: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -499,7 +484,7 @@ const columns = ref<any[]>([
 	{
 		prop: 'expiredTime',
 		label: '工单期满时间',
-    minWidth: 160,
+		minWidth: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -507,7 +492,7 @@ const columns = ref<any[]>([
 	{
 		prop: 'filedTime',
 		label: '办结时间',
-    minWidth: 160,
+		minWidth: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.filedTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -518,11 +503,11 @@ const columns = ref<any[]>([
 	{ prop: 'counterSignTypeText', label: '是否会签', minWidth: 90 },
 	{ prop: 'sourceChannel', label: '来源渠道', minWidth: 100 },
 	{ prop: 'hotspotName', label: '热点分类', minWidth: 150 },
-  { prop: 'acceptorName', label: '受理人', minWidth: 120 },
+	{ prop: 'acceptorName', label: '受理人', minWidth: 120 },
 	{
 		prop: 'sensitiveText',
 		label: '敏感词',
-    minWidth: 150,
+		minWidth: 150,
 	},
 	{
 		prop: 'content',
@@ -593,7 +578,7 @@ const resetQuery = (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.resetFields();
 	state.queryParams.IsSensitiveWord = null;
-	state.queryParams.IsProvinceOrder = null;
+	state.queryParams.IsProvinceOrder = '';
 	fastSearch.value = 'all';
 	checkList.value = [];
 	queryList();

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

@@ -9,13 +9,13 @@
 					<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" class="keyword-input" />
 				</el-form-item>
 				<el-form-item label="是否省工单" prop="IsProvince">
-					<el-select v-model="state.queryParams.IsProvince" placeholder="请选择是否省工单" @change="handleQuery" class="w100">
+					<el-select v-model="state.queryParams.IsProvince" placeholder="请选择是否省工单" @change="handleQuery">
 						<el-option label="是" value="true" />
 						<el-option label="否" value="false" />
 					</el-select>
 				</el-form-item>
 				<el-form-item label="是否延期" prop="Delay">
-					<el-select v-model="state.queryParams.Delay" placeholder="请选择是否延期" @change="handleQuery" class="w100">
+					<el-select v-model="state.queryParams.Delay" placeholder="请选择是否延期" @change="handleQuery">
 						<el-option label="是" :value="1" />
 						<el-option label="否" :value="2" />
 					</el-select>

+ 2 - 2
src/views/business/overdue/soon.vue

@@ -9,13 +9,13 @@
 					<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" class="keyword-input" />
 				</el-form-item>
         <el-form-item label="是否省工单" prop="IsProvince">
-          <el-select v-model="state.queryParams.IsProvince" placeholder="请选择是否省工单" @change="handleQuery" class="w100">
+          <el-select v-model="state.queryParams.IsProvince" placeholder="请选择是否省工单" @change="handleQuery">
             <el-option label="是" value="true" />
             <el-option label="否" value="false" />
           </el-select>
         </el-form-item>
         <el-form-item label="是否延期" prop="Delay">
-          <el-select v-model="state.queryParams.Delay" placeholder="请选择是否延期" @change="handleQuery" class="w100">
+          <el-select v-model="state.queryParams.Delay" placeholder="请选择是否延期" @change="handleQuery">
             <el-option label="是" :value="1" />
             <el-option label="否" :value="2" />
           </el-select>

+ 18 - 14
src/views/business/publish/todo.vue

@@ -3,14 +3,18 @@
 		<el-card shadow="never">
 			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
 				<el-row :gutter="10">
-          <el-col v-auth="'business:publish:todo:querySelf'">
-            <el-form-item label="数据范围" prop="QuerySelf">
-              <el-radio-group v-model="state.queryParams.QuerySelf" @change="handleQuery">
-                <el-radio-button label="true">我的</el-radio-button>
-                <el-radio-button label="false">全部</el-radio-button>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
+					<el-col v-auth="'business:publish:todo:querySelf'">
+						<el-form-item label="数据范围" prop="QuerySelf">
+							<el-segmented
+								:options="[
+									{ label: '我的', value: 'true' },
+									{ label: '全部', value: 'false' },
+								]"
+								v-model="state.queryParams.QuerySelf"
+								@change="handleQuery"
+							/>
+						</el-form-item>
+					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
 						<el-form-item label="工单标题" prop="Keyword">
 							<el-input v-model="state.queryParams.Keyword" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
@@ -112,7 +116,7 @@ const state = reactive({
 		FiledType: null, // 归档类型
 		IsCountersign: null, // 是否会签
 		Keyword: null, // 标题
-		QuerySelf: true, // 是否只查询自己的待发布工单
+		QuerySelf: 'true', // 是否只查询自己的待发布工单
 	},
 	tableData: [], //表单
 	loading: false, // 加载
@@ -135,7 +139,7 @@ const columns = ref<any[]>([
 	{ prop: 'isProvinceText', label: '省/市工单', minWidth: 90 },
 	{ prop: 'statusText', label: '工单状态', minWidth: 100 },
 	{ prop: 'title', label: '工单标题', minWidth: 200 },
-	{ prop: 'sourceChannel', label: '来源渠道',minWidth:100 },
+	{ prop: 'sourceChannel', label: '来源渠道', minWidth: 100 },
 	{ prop: 'acceptType', label: '受理类型', minWidth: 100 },
 	{ prop: 'counterSignTypeText', label: '是否会签', minWidth: 90 },
 	{ prop: 'actualHandleOrgName', label: '接办部门', minWidth: 140 },
@@ -143,7 +147,7 @@ const columns = ref<any[]>([
 	{
 		prop: 'actualHandleTime',
 		label: '接办时间',
-    minWidth: 160,
+		minWidth: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.actualHandleTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -151,7 +155,7 @@ const columns = ref<any[]>([
 	{
 		prop: 'startTime',
 		label: '受理时间',
-    minWidth: 160,
+		minWidth: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -159,7 +163,7 @@ const columns = ref<any[]>([
 	{
 		prop: 'filedTime',
 		label: '办结时间',
-    minWidth: 160,
+		minWidth: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.filedTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -188,7 +192,7 @@ const queryList = () => {
 const resetQuery = (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.resetFields();
-	state.queryParams.QuerySelf = true;
+	state.queryParams.QuerySelf = 'true';
 	queryList();
 };
 // 批量发布

+ 16 - 9
src/views/business/return/index.vue

@@ -5,18 +5,19 @@
 				<el-row>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-auth="'business:return:querySelf'">
 						<el-form-item label="数据范围" prop="DataScope">
-							<el-radio-group v-model="state.queryParams.DataScope" @change="handleQuery">
-								<el-radio-button label="1">我的</el-radio-button>
-								<el-radio-button label="0">全部</el-radio-button>
-							</el-radio-group>
+							<el-segmented
+								:options="[
+									{ label: '我的', value: '1' },
+									{ label: '全部', value: '0' },
+								]"
+								v-model="state.queryParams.DataScope"
+								@change="handleQuery"
+							/>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
 						<el-form-item label="快捷查询" prop="State">
-							<el-radio-group v-model="state.queryParams.State" @change="handleQuery">
-								<el-radio-button label="">全部</el-radio-button>
-								<el-radio-button :label="item.key" v-for="item in eSendBackAuditState" :key="item.key">{{ item.value }}</el-radio-button>
-							</el-radio-group>
+							<el-segmented :options="eSendBackAuditState" v-model="state.queryParams.State" @change="handleQuery" />
 						</el-form-item>
 					</el-col>
 				</el-row>
@@ -202,7 +203,13 @@ const getBaseData = async () => {
 	// 获取基础数据
 	try {
 		const { result } = await returnBase();
-		eSendBackAuditState.value = result.eSendBackAuditState;
+		eSendBackAuditState.value = result.eSendBackAuditState?.map((item: any) => {
+			return {
+				label: item.value,
+				value: item.key,
+			};
+		});
+		eSendBackAuditState.value.unshift({ label: '全部', value: '' });
 		acceptTypeOptions.value = result.acceptTypeOptions;
 	} catch (e) {
 		console.log(e);

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

@@ -7,7 +7,7 @@
 					<el-input v-model="state.queryParams.Keyword" placeholder="工单编码/标题" clearable @keyup.enter="handleQuery" class="keyword-input" />
 				</el-form-item>
 				<el-form-item label="申请状态" prop="Status">
-					<el-select v-model="state.queryParams.Status" placeholder="请选择申请状态" clearable class="w100" @change="handleQuery">
+					<el-select v-model="state.queryParams.Status" placeholder="请选择申请状态" clearable @change="handleQuery">
 						<el-option v-for="item in state.statusOptions" :value="item.key" :key="item.key" :label="item.value" />
 					</el-select>
 				</el-form-item>

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

@@ -7,7 +7,7 @@
 					<el-input v-model="state.queryParams.Keyword" placeholder="工单编码/标题" clearable @keyup.enter="handleQuery" class="keyword-input" />
 				</el-form-item>
 				<el-form-item label="审批状态" prop="VisitApplyState">
-					<el-select v-model="state.queryParams.VisitApplyState" placeholder="请选择审批状态" clearable class="w100">
+					<el-select v-model="state.queryParams.VisitApplyState" placeholder="请选择审批状态" clearable>
 						<el-option v-for="item in visitApplyState" :value="item.key" :key="item.key" :label="item.value" />
 					</el-select>
 				</el-form-item>

+ 1 - 2
src/views/business/special/index.vue

@@ -64,10 +64,9 @@
 		<special-audit-detail ref="specialAuditDetailRef" />
 	</div>
 </template>
-<script setup lang="tsx" name="orderSpecial">
+<script setup lang="tsx" name="businessSpecialIndex">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
-import { throttle } from '@/utils/tools';
 import { formatDate } from '@/utils/formatTime';
 import { useRouter } from 'vue-router';
 import { specialListAll } from '@/api/business/special';

+ 9 - 5
src/views/business/visit/index.vue

@@ -6,11 +6,15 @@
 				<el-row :gutter="20">
           <el-col>
             <el-form-item label="数据范围" prop="IsProvince">
-              <el-radio-group v-model="state.queryParams.IsProvince" @change="handleQuery">
-                <el-radio-button label="">全部</el-radio-button>
-                <el-radio-button label="false">市工单</el-radio-button>
-                <el-radio-button label="true">省工单</el-radio-button>
-              </el-radio-group>
+              <el-segmented
+                  :options="[
+									{ label: '全部', value: '' },
+									{ label: '市工单', value: 'false' },
+									{ label: '省工单', value: 'true' },
+								]"
+                  v-model="state.queryParams.IsProvince"
+                  @change="handleQuery"
+              />
             </el-form-item>
           </el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">

+ 35 - 27
src/views/business/visit/todo.vue

@@ -3,25 +3,33 @@
 		<!-- 搜索  -->
 		<el-card shadow="never">
 			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
-        <el-row>
-          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-auth="'business:visit:todo:querySelf'">
-            <el-form-item label="数据范围" prop="QuerySelf">
-              <el-radio-group v-model="state.queryParams.QuerySelf" @change="handleQuery">
-                <el-radio-button label="true">我的</el-radio-button>
-                <el-radio-button label="false">全部</el-radio-button>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-auth="'business:visit:todo:orderType'">
-            <el-form-item label="工单类型" prop="IsProvince">
-              <el-radio-group v-model="state.queryParams.IsProvince" @change="handleQuery">
-                <el-radio-button label="">全部</el-radio-button>
-                <el-radio-button label="false">市工单</el-radio-button>
-                <el-radio-button label="true">省工单</el-radio-button>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-        </el-row>
+				<el-row>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-auth="'business:visit:todo:querySelf'">
+						<el-form-item label="数据范围" prop="QuerySelf">
+							<el-segmented
+								:options="[
+									{ label: '我的', value: 'true' },
+									{ label: '全部', value: 'false' },
+								]"
+								v-model="state.queryParams.QuerySelf"
+								@change="handleQuery"
+							/>
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-auth="'business:visit:todo:orderType'">
+						<el-form-item label="工单类型" prop="IsProvince">
+							<el-segmented
+								:options="[
+									{ label: '全部', value: '' },
+									{ label: '市工单', value: 'false' },
+									{ label: '省工单', value: 'true' },
+								]"
+								v-model="state.queryParams.IsProvince"
+								@change="handleQuery"
+							/>
+						</el-form-item>
+					</el-col>
+				</el-row>
 				<el-row :gutter="20">
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
 						<el-form-item label="工单标题" prop="Keyword">
@@ -151,7 +159,7 @@ const closeSearch = () => {
 const columns = ref<any[]>([
 	{ type: 'selection', fixed: 'left', width: 40, align: 'center' },
 	{ prop: 'order.no', label: '工单编码', minWidth: 140 },
-  { prop: 'order.isProvinceText', label: '省/市工单', minWidth: 90 },
+	{ prop: 'order.isProvinceText', label: '省/市工单', minWidth: 90 },
 	{ prop: 'order.title', label: '工单标题', minWidth: 200 },
 	{ prop: 'order.sourceChannel', label: '来源渠道', minWidth: 100 },
 	{ prop: 'visitStateText', label: '回访状态', minWidth: 100 },
@@ -165,7 +173,7 @@ const columns = ref<any[]>([
 	{
 		prop: 'order.startTime',
 		label: '受理时间',
-    minWidth: 160,
+		minWidth: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.order?.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -173,7 +181,7 @@ const columns = ref<any[]>([
 	{
 		prop: 'order.filedTime',
 		label: '办结时间',
-    minWidth: 160,
+		minWidth: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.order?.filedTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -181,7 +189,7 @@ const columns = ref<any[]>([
 	{
 		prop: 'publishTime',
 		label: '发布时间',
-    minWidth: 160,
+		minWidth: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.publishTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -189,7 +197,7 @@ const columns = ref<any[]>([
 	{
 		prop: 'creationTime',
 		label: '回访任务创建时间',
-    minWidth: 160,
+		minWidth: 160,
 		render: (scope) => {
 			return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
 		},
@@ -213,9 +221,9 @@ const state = reactive({
 		VisitState: '2', // 回访状态 待回访
 		VisitType: null, // 回访方式
 		No: null,
-		QuerySelf: true, // 是否只查询自己的待回访工单
+		QuerySelf: 'true', // 是否只查询自己的待回访工单
 		EmployeeName: null, // 回访人
-    IsProvince:'',// 是否省工单
+		IsProvince: '', // 是否省工单
 	},
 	tableData: [], //表单
 	loading: false, // 加载
@@ -251,7 +259,7 @@ const queryList = () => {
 const resetQuery = (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.resetFields();
-	state.queryParams.QuerySelf = true;
+	state.queryParams.QuerySelf = 'true';
 	queryList();
 };
 // 短信回访

+ 28 - 8
src/views/judicial/order/index.vue

@@ -5,13 +5,32 @@
 				<el-row :gutter="10">
           <el-col>
             <el-form-item label="快捷查询" prop="fastSearch">
-              <el-radio-group v-model="fastSearch" @change="fastSearchChange">
-                <el-radio-button label="all">全部</el-radio-button>
-                <el-radio-button label="IsTheClueTrue">线索属实</el-radio-button>
-                <el-radio-button label="NoTheClueTrue">线索不属实</el-radio-button>
-                <el-radio-button label="IsPassTheBuckOrder">推诿工单</el-radio-button>
-                <el-radio-button label="IsEnforcementOrder">行政执法类工单</el-radio-button>
-              </el-radio-group>
+              <el-segmented
+                  :options="[
+									{
+										value: 'all',
+										label: '全部',
+									},
+									{
+										value: 'IsTheClueTrue',
+										label: '线索属实',
+									},
+									{
+										value: 'NoTheClueTrue',
+										label: '线索不属实',
+									},
+									{
+										value: 'IsPassTheBuckOrder',
+										label: '推诿工单',
+									},
+									{
+										value: 'IsEnforcementOrder',
+										label: '行政执法类工单',
+									},
+								]"
+                  v-model="fastSearch"
+                  @change="fastSearchChange"
+              />
             </el-form-item>
           </el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
@@ -368,7 +387,8 @@ const queryList = () => {
 const resetQuery = (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.resetFields();
-	queryList();
+  fastSearch.value = 'all';
+  fastSearchChange(fastSearch.value);
 };
 // 线索核实
 const verifyRef = ref<RefType>();

+ 18 - 5
src/views/province/delay.vue

@@ -5,11 +5,24 @@
 				<el-row>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
 						<el-form-item label="审核状态" prop="State">
-							<el-radio-group v-model="state.queryParams.State" @change="handleQuery">
-								<el-radio-button label="0">申请中</el-radio-button>
-								<el-radio-button label="1">同意</el-radio-button>
-								<el-radio-button label="2">不同意</el-radio-button>
-							</el-radio-group>
+              <el-segmented
+                  :options="[
+									{
+										value: '0',
+										label: '申请中',
+									},
+									{
+										value: '1',
+										label: '同意',
+									},
+									{
+										value: '2',
+										label: '不同意',
+									},
+								]"
+                  v-model="state.queryParams.State"
+                  @change="handleQuery"
+              />
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">

+ 18 - 5
src/views/province/return.vue

@@ -5,11 +5,24 @@
 				<el-row>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
 						<el-form-item label="审核状态" prop="State">
-							<el-radio-group v-model="state.queryParams.State" @change="handleQuery">
-                <el-radio-button label="0">申请中</el-radio-button>
-                <el-radio-button label="1">同意</el-radio-button>
-                <el-radio-button label="2">不同意</el-radio-button>
-							</el-radio-group>
+              <el-segmented
+                  :options="[
+									{
+										value: '0',
+										label: '申请中',
+									},
+									{
+										value: '1',
+										label: '同意',
+									},
+									{
+										value: '2',
+										label: '不同意',
+									},
+								]"
+                  v-model="state.queryParams.State"
+                  @change="handleQuery"
+              />
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">

+ 208 - 195
src/views/province/screen.vue

@@ -1,101 +1,114 @@
 <template>
-  <div class="province-order-screen-container layout-pd">
-    <el-card shadow="never">
-      <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
-        <el-row>
-          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-            <el-form-item label="审核状态" prop="State">
-              <el-radio-group v-model="state.queryParams.State" @change="handleQuery">
-                <el-radio-button label="0">申请中</el-radio-button>
-                <el-radio-button label="1">同意</el-radio-button>
-                <el-radio-button label="2">不同意</el-radio-button>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-            <el-form-item label="工单标题" prop="Title">
-              <el-input v-model="state.queryParams.Title" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
-            </el-form-item>
-          </el-col>
-          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-            <el-form-item label="工单编码" prop="No">
-              <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
-            </el-form-item>
-          </el-col>
-          <transition name="el-zoom-in-top" v-show="!searchCol">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-              <el-form-item label="省工单编码" prop="ProvinceNo">
-                <el-input v-model="state.queryParams.ProvinceNo" placeholder="省工单编码" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <transition name="el-zoom-in-top" v-show="!searchCol">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-              <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-col>
-          </transition>
-          <transition name="el-zoom-in-top" v-show="!searchCol">
-            <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-              <el-form-item label="申请人" prop="ApplyUserName">
-                <el-input v-model="state.queryParams.ApplyUserName" placeholder="申请人姓名" clearable @keyup.enter="handleQuery" />
-              </el-form-item>
-            </el-col>
-          </transition>
-          <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
-            <el-form-item label=" ">
-              <div class="flex-end w100">
-                <el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
-                <el-button @click="resetQuery(ruleFormRef)" class="default-button" :loading="state.loading">
-                  <SvgIcon name="ele-Refresh" class="mr5" />重置
-                </el-button>
-                <el-button link type="primary" @click="closeSearch" :loading="state.loading">
-                  {{ searchCol ? '展开' : '收起' }}
-                  <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
-                </el-button>
-              </div>
-            </el-form-item>
-          </el-col>
-        </el-row>
-      </el-form>
-    </el-card>
-    <el-card shadow="never">
-      <ProTable
-          ref="proTableRef"
-          :columns="columns"
-          :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"
-      >
-        <template #expiredStatusText="{ row }">
-          <span :class="'overdue-status-' + row.order?.expiredStatus" :title="row.order?.expiredStatusText"></span>
-        </template>
-        <template #title="{ row }">
-          <order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
-        </template>
-        <template #operation="{ row }">
-          <el-button type="primary" link @click="onDetail(row)" title="省工单甄别明细"> 明细</el-button>
-          <order-detail :order="row.order" @updateList="queryList" />
-        </template>
-      </ProTable>
-    </el-card>
-    <detail-drawer ref="detailDrawerRef" />
-  </div>
+	<div class="province-order-screen-container layout-pd">
+		<el-card shadow="never">
+			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
+				<el-row>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+						<el-form-item label="审核状态" prop="State">
+							<el-segmented
+								:options="[
+									{
+										value: '0',
+										label: '申请中',
+									},
+									{
+										value: '1',
+										label: '同意',
+									},
+									{
+										value: '2',
+										label: '不同意',
+									},
+								]"
+								v-model="state.queryParams.State"
+								@change="handleQuery"
+							/>
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+						<el-form-item label="工单标题" prop="Title">
+							<el-input v-model="state.queryParams.Title" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+						<el-form-item label="工单编码" prop="No">
+							<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
+						</el-form-item>
+					</el-col>
+					<transition name="el-zoom-in-top" v-show="!searchCol">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+							<el-form-item label="省工单编码" prop="ProvinceNo">
+								<el-input v-model="state.queryParams.ProvinceNo" placeholder="省工单编码" clearable @keyup.enter="handleQuery" />
+							</el-form-item>
+						</el-col>
+					</transition>
+					<transition name="el-zoom-in-top" v-show="!searchCol">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+							<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-col>
+					</transition>
+					<transition name="el-zoom-in-top" v-show="!searchCol">
+						<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+							<el-form-item label="申请人" prop="ApplyUserName">
+								<el-input v-model="state.queryParams.ApplyUserName" placeholder="申请人姓名" clearable @keyup.enter="handleQuery" />
+							</el-form-item>
+						</el-col>
+					</transition>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+						<el-form-item label=" ">
+							<div class="flex-end w100">
+								<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
+								<el-button @click="resetQuery(ruleFormRef)" class="default-button" :loading="state.loading">
+									<SvgIcon name="ele-Refresh" class="mr5" />重置
+								</el-button>
+								<el-button link type="primary" @click="closeSearch" :loading="state.loading">
+									{{ searchCol ? '展开' : '收起' }}
+									<SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
+								</el-button>
+							</div>
+						</el-form-item>
+					</el-col>
+				</el-row>
+			</el-form>
+		</el-card>
+		<el-card shadow="never">
+			<ProTable
+				ref="proTableRef"
+				:columns="columns"
+				: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"
+			>
+				<template #expiredStatusText="{ row }">
+					<span :class="'overdue-status-' + row.order?.expiredStatus" :title="row.order?.expiredStatusText"></span>
+				</template>
+				<template #title="{ row }">
+					<order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
+				</template>
+				<template #operation="{ row }">
+					<el-button type="primary" link @click="onDetail(row)" title="省工单甄别明细"> 明细</el-button>
+					<order-detail :order="row.order" @updateList="queryList" />
+				</template>
+			</ProTable>
+		</el-card>
+		<detail-drawer ref="detailDrawerRef" />
+	</div>
 </template>
 <script setup lang="tsx" name="provinceScreen">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
@@ -104,7 +117,7 @@ import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import { useRoute, useRouter } from 'vue-router';
 import { formatDate } from '@/utils/formatTime';
 import Other from '@/utils/other';
-import {provinceIdentifyList} from '@/api/province';
+import { provinceIdentifyList } from '@/api/province';
 
 // 引入组件
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
@@ -112,133 +125,133 @@ const DetailDrawer = defineAsyncComponent(() => import('@/views/province/compone
 
 // 定义变量内容
 const state = reactive<any>({
-  queryParams: {
-    PageIndex: 1, // 当前页
-    PageSize: 10, // 每页条数
-    No: null, // 工单编码
-    Title: null, // 工单标题
-    State: '0', // 审核中
-    ApplyUserName: null, // 申请人
-    ProvinceNo: null, // 省工单编号
-    crTime: [], // 申请时间
-    ApplyStartTime: null,
-    ApplyEndTime: null,
-  },
-  tableData: [], //表单
-  loading: false, // 加载
-  total: 0, // 总数
+	queryParams: {
+		PageIndex: 1, // 当前页
+		PageSize: 10, // 每页条数
+		No: null, // 工单编码
+		Title: null, // 工单标题
+		State: '0', // 审核中
+		ApplyUserName: null, // 申请人
+		ProvinceNo: null, // 省工单编号
+		crTime: [], // 申请时间
+		ApplyStartTime: null,
+		ApplyEndTime: null,
+	},
+	tableData: [], //表单
+	loading: false, // 加载
+	total: 0, // 总数
 });
 const ruleFormRef = ref<RefType>(); // 表单ref
 const searchCol = ref(true); // 展开/收起
 // 展开/收起
 const closeSearch = () => {
-  searchCol.value = !searchCol.value;
+	searchCol.value = !searchCol.value;
 };
 const route = useRoute(); // 路由
 const router = useRouter(); // 路由
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-  { prop: 'order.expiredStatusText', label: '超期状态', align: 'center', minWidth: 80 },
-  { prop: 'order.statusText', label: '工单状态', minWidth: 100 },
-  { prop: 'creatorName', label: '申请人', minWidth: 120 },
-  {
-    prop: 'creationTime',
-    label: '申请时间',
-    minWidth: 160,
-    render: (scope) => {
-      return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-    },
-  },
-  { prop: 'auditName', label: '审核人', minWidth: 120 },
-  {
-    prop: 'auditTime',
-    label: '审核时间',
-    minWidth: 160,
-    render: (scope) => {
-      return <span>{formatDate(scope.row.auditTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-    },
-  },
-  { prop: 'statusText', label: '审核状态', minWidth: 100 },
-  { prop: 'order.actualHandleStepName', label: '办理节点', minWidth: 100 },
-  {
-    prop: 'order.isUrgentText',
-    label: '是否紧急',
-    render: (scope) => {
-      return <span class="color-danger font-bold">{scope.row.order?.isUrgentText}</span>;
-    },
-  },
-  { prop: 'order.provinceNo', label: '省工单编码', minWidth: 240 },
-  { prop: 'order.no', label: '工单编码', minWidth: 140 },
-  {
-    prop: 'order.startTime',
-    label: '受理时间',
-    minWidth: 160,
-    render: (scope) => {
-      return <span>{formatDate(scope.row.order?.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-    },
-  },
-  { prop: 'order.title', label: '工单标题', minWidth: 200 },
-  {
-    prop: 'order.expiredTime',
-    label: '工单期满时间',
-    minWidth: 160,
-    render: (scope) => {
-      return <span>{formatDate(scope.row.order?.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-    },
-  },
-  { prop: 'order.actualHandleOrgName', label: '接办部门', minWidth: 140 },
-  { prop: 'order.acceptType', label: '受理类型', minWidth: 100 },
-  { prop: 'order.hotspotName', label: '热点分类', minWidth: 150 },
-  { prop: 'order.acceptorName', label: '受理人', minWidth: 120 },
-  { prop: 'operation', label: '操作', fixed: 'right', width: 140, align: 'center' },
+	{ prop: 'order.expiredStatusText', label: '超期状态', align: 'center', minWidth: 80 },
+	{ prop: 'order.statusText', label: '工单状态', minWidth: 100 },
+	{ prop: 'creatorName', label: '申请人', minWidth: 120 },
+	{
+		prop: 'creationTime',
+		label: '申请时间',
+		minWidth: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{ prop: 'auditName', label: '审核人', minWidth: 120 },
+	{
+		prop: 'auditTime',
+		label: '审核时间',
+		minWidth: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.auditTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{ prop: 'statusText', label: '审核状态', minWidth: 100 },
+	{ prop: 'order.actualHandleStepName', label: '办理节点', minWidth: 100 },
+	{
+		prop: 'order.isUrgentText',
+		label: '是否紧急',
+		render: (scope) => {
+			return <span class="color-danger font-bold">{scope.row.order?.isUrgentText}</span>;
+		},
+	},
+	{ prop: 'order.provinceNo', label: '省工单编码', minWidth: 240 },
+	{ prop: 'order.no', label: '工单编码', minWidth: 140 },
+	{
+		prop: 'order.startTime',
+		label: '受理时间',
+		minWidth: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.order?.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{ prop: 'order.title', label: '工单标题', minWidth: 200 },
+	{
+		prop: 'order.expiredTime',
+		label: '工单期满时间',
+		minWidth: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.order?.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{ prop: 'order.actualHandleOrgName', label: '接办部门', minWidth: 140 },
+	{ prop: 'order.acceptType', label: '受理类型', minWidth: 100 },
+	{ prop: 'order.hotspotName', label: '热点分类', minWidth: 150 },
+	{ prop: 'order.acceptorName', label: '受理人', minWidth: 120 },
+	{ prop: 'operation', label: '操作', fixed: 'right', width: 140, align: 'center' },
 ]);
 // 手动查询,将页码设置为1
 const handleQuery = () => {
-  state.queryParams.PageIndex = 1;
-  queryList();
+	state.queryParams.PageIndex = 1;
+	queryList();
 };
 /** 获取列表 */
 const requestParams = ref({});
 const queryList = () => {
-  requestParams.value = Other.deepClone(state.queryParams);
-  requestParams.value.ApplyStartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0]; // 生成时间
-  requestParams.value.ApplyEndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
-  Reflect.deleteProperty(requestParams.value, 'crTime'); // 删除无用的参数
-  state.loading = true;
-  provinceIdentifyList(requestParams.value)
-      .then((response: any) => {
-        state.tableData = response?.result.items ?? [];
-        state.total = response?.result.total;
-        state.loading = false;
-      })
-      .catch(() => {
-        state.loading = false;
-      });
+	requestParams.value = Other.deepClone(state.queryParams);
+	requestParams.value.ApplyStartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0]; // 生成时间
+	requestParams.value.ApplyEndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
+	Reflect.deleteProperty(requestParams.value, 'crTime'); // 删除无用的参数
+	state.loading = true;
+	provinceIdentifyList(requestParams.value)
+		.then((response: any) => {
+			state.tableData = response?.result.items ?? [];
+			state.total = response?.result.total;
+			state.loading = false;
+		})
+		.catch(() => {
+			state.loading = false;
+		});
 };
 /** 重置按钮操作 */
 const resetQuery = (formEl: FormInstance | undefined) => {
-  if (!formEl) return;
-  formEl.resetFields();
-  queryList();
+	if (!formEl) return;
+	formEl.resetFields();
+	queryList();
 };
 // 查看明细
 const detailDrawerRef = ref<RefType>();
 const onDetail = (row: any) => {
-  detailDrawerRef.value.openDrawer(row.id, 'screen');
+	detailDrawerRef.value.openDrawer(row.id, 'screen');
 };
 onMounted(() => {
-  queryList();
+	queryList();
 });
 </script>
 <style scoped lang="scss">
 .province-order-screen-container {
-  .arrow {
-    transition: transform var(--el-transition-duration);
-    cursor: pointer;
-  }
-  .arrow.is-reverse {
-    transform: rotateZ(-180deg);
-  }
+	.arrow {
+		transition: transform var(--el-transition-duration);
+		cursor: pointer;
+	}
+	.arrow.is-reverse {
+		transform: rotateZ(-180deg);
+	}
 }
 </style>

+ 20 - 24
src/views/province/zmhd/index.vue

@@ -5,11 +5,24 @@
 				<el-row>
           <el-col>
             <el-form-item label="快捷查询" prop="fastSearch">
-              <el-radio-group v-model="fastSearch" @change="fastSearchChange">
-                <el-radio-button label="all">全部</el-radio-button>
-                <el-radio-button label="false">未处理</el-radio-button>
-                <el-radio-button label="true">已公开</el-radio-button>
-              </el-radio-group>
+              <el-segmented
+                  :options="[
+									{
+										value: '',
+										label: '全部',
+									},
+									{
+										value: 'false',
+										label: '未处理',
+									},
+									{
+										value: 'true',
+										label: '已公开',
+									},
+								]"
+                  v-model="state.queryParams.IsProvinceZmhd"
+                  @change="handleQuery"
+              />
             </el-form-item>
           </el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
@@ -141,28 +154,12 @@ const state = reactive<any>({
 		auditTime: [], // 审核时间
 		StartTime: null, // 审核开始时间
 		EndTime: null, // 审核结束时间
-		IsProvinceZmhd: null, // 是否政民互动公开
+		IsProvinceZmhd: '', // 是否政民互动公开
 	},
 	tableData: [], //表单
 	loading: false, // 加载
 	total: 0, // 总数
 });
-const fastSearch = ref('all'); // tab位置
-const fastSearchChange = (val: string) => {
-	fastSearch.value = val;
-	switch (val) {
-		case 'all':
-			state.queryParams.IsProvinceZmhd = null;
-			break;
-		case 'false':
-			state.queryParams.IsProvinceZmhd = false;
-			break;
-		case 'true':
-			state.queryParams.IsProvinceZmhd = true;
-			break;
-	}
-	handleQuery();
-};
 const ruleFormRef = ref<RefType>(); // 表单ref
 const searchCol = ref(true); // 展开/收起
 // 展开/收起
@@ -244,8 +241,7 @@ const queryList = () => {
 const resetQuery = (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.resetFields();
-  state.queryParams.IsProvinceZmhd = null;
-	fastSearch.value = 'all';
+  state.queryParams.IsProvinceZmhd = '';
 	queryList();
 };
 // 查看明细

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

@@ -69,8 +69,8 @@ const columns = ref<any[]>([
 	{ prop: 'name', label: '质检项名称', minWidth: 150 },
 	{ prop: 'describe', label: '质检项描述', minWidth: 200 },
 	{ prop: 'groupingName', label: '质检项分组', minWidth: 150 },
-	{ prop: 'type', label: '是否智能质检' },
-	{ prop: 'grade', label: '分值(分)' },
+	{ prop: 'type', label: '是否智能质检', minWidth: 120 },
+	{ prop: 'grade', label: '分值(分)', minWidth: 100 },
 	{
 		prop: 'isEnable',
 		label: '是否启用',

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

@@ -75,7 +75,7 @@
 		</el-card>
 	</div>
 </template>
-<script setup lang="tsx" name="statisticsCall">
+<script setup lang="tsx" name="statisticsCallIndex">
 import { onMounted, reactive, ref } from 'vue';
 import { FormInstance } from 'element-plus';
 import { callList, callListExport, callPeriodBase } from '@/api/statistics/call';

+ 54 - 44
src/views/statistics/department/detailOverdueList.vue

@@ -3,14 +3,24 @@
 		<el-card shadow="never">
 			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
 				<el-row>
-          <el-col>
-            <el-form-item label="快捷查询" prop="fastSearch">
-              <el-radio-group v-model="state.queryParams.ExpiredType" @change="handleQuery">
-                <el-radio-button label="1">系统中超期</el-radio-button>
-                <el-radio-button label="2">申请延期超期</el-radio-button>
-              </el-radio-group>
-            </el-form-item>
-          </el-col>
+					<el-col>
+						<el-form-item label="快捷查询" prop="ExpiredType">
+							<el-segmented
+								:options="[
+									{
+										value: '1',
+										label: '系统中超期',
+									},
+									{
+										value: '2',
+										label: '申请延期超期',
+									},
+								]"
+								v-model="state.queryParams.ExpiredType"
+								@change="handleQuery"
+							/>
+						</el-form-item>
+					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
 						<el-form-item label="部门名称" prop="OrgName">
 							<el-input v-model="state.queryParams.OrgName" placeholder="部门名称" clearable @keyup.enter="handleQuery" />
@@ -34,7 +44,7 @@
 								@change="handleQuery"
 								value-format="YYYY-MM-DD[T]HH:mm:ss"
 								:default-time="defaultTimeStartEnd"
-                :clearable="false"
+								:clearable="false"
 							/>
 						</el-form-item>
 					</el-col>
@@ -115,7 +125,7 @@ import { onMounted, reactive, ref, defineAsyncComponent } from 'vue';
 import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
 import { departmentOverdueBase, departmentOverdueList, departmentOverdueListExport } from '@/api/statistics/department';
 import { formatDate } from '@/utils/formatTime';
-import {defaultDateTime, defaultTimeStartEnd, shortcuts} from '@/utils/constants';
+import { defaultDateTime, defaultTimeStartEnd, shortcuts } from '@/utils/constants';
 import { useRoute } from 'vue-router';
 import Other from '@/utils/other';
 import { exportJbOrder } from '@/api/business/order';
@@ -127,33 +137,33 @@ const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/
 const columns = ref<any[]>([
 	{ type: 'selection', width: 40, align: 'center' },
 	{ prop: 'no', label: '工单编码', width: 140 },
-  {
-    prop: 'creationTime',
-    label: '受理时间',
-    minWidth: 160,
-    render: (scope) => {
-      return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-    },
-  },
-  { prop: 'title', label: '工单标题', width: 200 },
-  { prop: 'sourceChannel', label: '来源渠道', width: 160 },
-  { prop: 'daysOverdueOrgName', label: '超期部门', width: 140 },
-  {
-    prop: 'filedTime',
-    label: '办结时间',
-    minWidth: 160,
-    render: (scope) => {
-      return <span>{formatDate(scope.row.filedTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-    },
-  },
-  {
-    prop: 'expiredTime',
-    label: '工单期满时间',
-    minWidth: 160,
-    render: (scope) => {
-      return <span>{formatDate(scope.row.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-    },
-  },
+	{
+		prop: 'creationTime',
+		label: '受理时间',
+		minWidth: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{ prop: 'title', label: '工单标题', width: 200 },
+	{ prop: 'sourceChannel', label: '来源渠道', width: 160 },
+	{ prop: 'daysOverdueOrgName', label: '超期部门', width: 140 },
+	{
+		prop: 'filedTime',
+		label: '办结时间',
+		minWidth: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.filedTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{
+		prop: 'expiredTime',
+		label: '工单期满时间',
+		minWidth: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
 
 	{ prop: 'overDays', label: '超期天数' },
 	{ prop: 'statusText', label: '工单状态', minWidth: 100 },
@@ -173,16 +183,16 @@ const state = reactive<any>({
 		PageSize: 10,
 		ExpiredType: '1',
 		crTime: defaultDateTime,
-    StartTime: null,
-    EndTime: null,
-    No:null,
-    Statuses: [], // 状态
-    OrgName:null, // 部门名称
+		StartTime: null,
+		EndTime: null,
+		No: null,
+		Statuses: [], // 状态
+		OrgName: null, // 部门名称
 	},
 	tableData: [], //表单
 	loading: false, // 加载
 	total: 0, // 总数
-  orderStatusOptions:[],// 工单状态
+	orderStatusOptions: [], // 工单状态
 });
 /** 搜索按钮操作 */
 const handleQuery = () => {
@@ -215,7 +225,7 @@ const hotSpotRef = ref<RefType>();
 const resetQuery = (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.resetFields();
-  state.queryParams.ExpiredType = '1';
+	state.queryParams.ExpiredType = '1';
 	queryList();
 };
 // 回访详情

+ 159 - 136
src/views/statistics/department/unSigned.vue

@@ -1,95 +1,118 @@
 <template>
-  <div class="statistics-department-unSigned-container layout-pd">
-    <!-- 搜索  -->
-    <el-card shadow="never">
-      <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-        <el-form-item label="" prop="Level">
-          <el-radio-group v-model="state.queryParams.Level" @change="handleQuery">
-            <el-radio-button label="0">全部</el-radio-button>
-            <el-radio-button label="1">本级</el-radio-button>
-            <el-radio-button label="2">下级</el-radio-button>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="" prop="Signed">
-          <el-radio-group v-model="state.queryParams.Signed" @change="handleQuery">
-            <el-radio-button label="0">未签收</el-radio-button>
-            <el-radio-button label="1">已签收</el-radio-button>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="时间段" prop="crTime">
-          <el-date-picker
-            v-model="state.queryParams.crTime"
-            type="daterange"
-            unlink-panels
-            range-separator="至"
-            start-placeholder="开始时间"
-            end-placeholder="结束时间"
-            :shortcuts="shortcuts"
-            @change="handleQuery"
-            value-format="YYYY-MM-DD"
-            :clearable="false"
-          />
-        </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)" class="default-button" :loading="state.loading">
-            <SvgIcon name="ele-Refresh" class="mr5" />重置
-          </el-button>
-        </el-form-item>
-      </el-form>
-    </el-card>
-    <el-card shadow="never">
-      <!-- 表格 -->
-      <ProTable
-        ref="proTableRef"
-        :columns="columns"
-        :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"
-        :toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"
-        :exportMethod="departmentUnSignExport"
-        :exportParams="requestParams"
-      >
-        <template #expiredStatusText="{ row }">
-          <span :class="'overdue-status-' + row.order?.expiredStatus" :title="row.order?.expiredStatusText"></span>
-        </template>
-        <template #title="{ row }">
-          <order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
-        </template>
-        <template #operation="{ row }">
-          <order-detail :order="row.order" @updateList="queryList" />
-        </template>
-      </ProTable>
-    </el-card>
-  </div>
+	<div class="statistics-department-unSigned-container layout-pd">
+		<!-- 搜索  -->
+		<el-card shadow="never">
+			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
+				<el-form-item label="" prop="Level">
+					<el-segmented
+						:options="[
+							{
+								value: '0',
+								label: '全部',
+							},
+							{
+								value: '1',
+								label: '本级',
+							},
+							{
+								value: '2',
+								label: '下级',
+							},
+						]"
+						v-model="state.queryParams.Level"
+						@change="handleQuery"
+					/>
+				</el-form-item>
+				<el-form-item label="" prop="Signed">
+					<el-segmented
+						:options="[
+							{
+								value: '0',
+								label: '未签收',
+							},
+							{
+								value: '1',
+								label: '已签收',
+							},
+						]"
+						v-model="state.queryParams.Signed"
+						@change="handleQuery"
+					/>
+				</el-form-item>
+				<el-form-item label="时间段" prop="crTime">
+					<el-date-picker
+						v-model="state.queryParams.crTime"
+						type="daterange"
+						unlink-panels
+						range-separator="至"
+						start-placeholder="开始时间"
+						end-placeholder="结束时间"
+						:shortcuts="shortcuts"
+						@change="handleQuery"
+						value-format="YYYY-MM-DD"
+						:clearable="false"
+					/>
+				</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)" class="default-button" :loading="state.loading">
+						<SvgIcon name="ele-Refresh" class="mr5" />重置
+					</el-button>
+				</el-form-item>
+			</el-form>
+		</el-card>
+		<el-card shadow="never">
+			<!-- 表格 -->
+			<ProTable
+				ref="proTableRef"
+				:columns="columns"
+				: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"
+				:toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"
+				:exportMethod="departmentUnSignExport"
+				:exportParams="requestParams"
+			>
+				<template #expiredStatusText="{ row }">
+					<span :class="'overdue-status-' + row.order?.expiredStatus" :title="row.order?.expiredStatusText"></span>
+				</template>
+				<template #title="{ row }">
+					<order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
+				</template>
+				<template #operation="{ row }">
+					<order-detail :order="row.order" @updateList="queryList" />
+				</template>
+			</ProTable>
+		</el-card>
+	</div>
 </template>
 <script setup lang="tsx" name="statisticsDepartmentUnSigned">
 import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
 import type { FormInstance } from 'element-plus';
 import { useRoute, useRouter } from 'vue-router';
 import { formatDate } from '@/utils/formatTime';
-import {departmentUnSignExport, departmentUnSign} from "@/api/statistics/department";
-import { defaultDate, shortcuts } from "@/utils/constants";
-import Other from "@/utils/other";
+import { departmentUnSignExport, departmentUnSign } from '@/api/statistics/department';
+import { defaultDate, shortcuts } from '@/utils/constants';
+import Other from '@/utils/other';
 
 // 引入组件
 const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
 
 // 定义变量内容
 const state = reactive<any>({
-  queryParams: {
-    PageIndex: 1, // 当前页
-    PageSize: 10, // 每页条数
-    Level:'0',
-    Signed:'0',
-    crTime: defaultDate, // 时间默认今天开始到今天结束
-  },
-  tableData: [], //表单
-  loading: false, // 加载
-  total: 0, // 总数
+	queryParams: {
+		PageIndex: 1, // 当前页
+		PageSize: 10, // 每页条数
+		Level: '0',
+		Signed: '0',
+		crTime: defaultDate, // 时间默认今天开始到今天结束
+	},
+	tableData: [], //表单
+	loading: false, // 加载
+	total: 0, // 总数
 });
 const ruleFormRef = ref<RefType>(); // 表单ref
 const route = useRoute(); // 路由
@@ -97,74 +120,74 @@ const router = useRouter(); // 路由
 const proTableRef = ref<RefType>(); // 表格ref
 // 表格配置项
 const columns = ref<any[]>([
-  { prop: 'order.expiredStatusText', label: '超期状态', align: 'center',width: 80},
-  { prop: 'order.statusText', label: '工单状态', width: 100 },
-  { prop: 'order.sourceChannel', label: '来源渠道', width: 100 },
-  { prop: 'order.currentStepName', label: '办理节点', width: 100 },
-  { prop: 'order.no', label: '工单编码', width: 140 },
+	{ prop: 'order.expiredStatusText', label: '超期状态', align: 'center', width: 80 },
+	{ prop: 'order.statusText', label: '工单状态', width: 100 },
+	{ prop: 'order.sourceChannel', label: '来源渠道', width: 100 },
+	{ prop: 'order.currentStepName', label: '办理节点', width: 100 },
+	{ prop: 'order.no', label: '工单编码', width: 140 },
 
-  {
-    prop: 'order.startTime',
-    label: '受理时间',
-    width: 160,
-    render: (scope) => {
-      return <span>{formatDate(scope.row.order.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-    },
-  },
-  { prop: 'order.title', label: '工单标题', width: 200 },
-  {
-    prop: 'order.expiredTime',
-    label: '工单期满时间',
-    width: 160,
-    render: (scope) => {
-      return <span>{formatDate(scope.row.order.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-    },
-  },
-  { prop: 'workflowStep.creatorOrgName', label: '转办部门', width: 140 },
-  {
-    prop: 'workflowStep.creationTime',
-    label: '转办时间',
-    width: 160,
-    render: (scope) => {
-      return <span>{formatDate(scope.row.workflowStep.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
-    },
-  },
-  { prop: 'workflowStep.acceptorOrgName', label: '签收部门', width: 140 },
-  { prop: 'unsignedTime', label: '未签收时间(小时)', width: 140 },
-  { prop: 'order.acceptType', label: '受理类型', width: 100 },
-  { prop: 'order.hotspotName', label: '热点分类', width: 150 },
-  { prop: 'operation', label: '操作', fixed: 'right', width: 90, align: 'center' },
+	{
+		prop: 'order.startTime',
+		label: '受理时间',
+		width: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.order.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{ prop: 'order.title', label: '工单标题', width: 200 },
+	{
+		prop: 'order.expiredTime',
+		label: '工单期满时间',
+		width: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.order.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{ prop: 'workflowStep.creatorOrgName', label: '转办部门', width: 140 },
+	{
+		prop: 'workflowStep.creationTime',
+		label: '转办时间',
+		width: 160,
+		render: (scope) => {
+			return <span>{formatDate(scope.row.workflowStep.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
+		},
+	},
+	{ prop: 'workflowStep.acceptorOrgName', label: '签收部门', width: 140 },
+	{ prop: 'unsignedTime', label: '未签收时间(小时)', width: 140 },
+	{ prop: 'order.acceptType', label: '受理类型', width: 100 },
+	{ prop: 'order.hotspotName', label: '热点分类', width: 150 },
+	{ prop: 'operation', label: '操作', fixed: 'right', width: 90, align: 'center' },
 ]);
 // 手动查询,将页码设置为1
 const handleQuery = () => {
-  state.queryParams.PageIndex = 1;
-  queryList();
+	state.queryParams.PageIndex = 1;
+	queryList();
 };
 const requestParams = ref({});
 /** 获取列表 */
 const queryList = () => {
-  requestParams.value = Other.deepClone(state.queryParams);
-  requestParams.value.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
-  requestParams.value.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
-  Reflect.deleteProperty(requestParams.value, 'crTime');
-  state.loading = true;
-  departmentUnSign(requestParams.value)
-    .then((response: any) => {
-      state.tableData = response?.result.items ?? [];
-      state.total = response?.result.total;
-      state.loading = false;
-    })
-    .catch(() => {
-      state.loading = false;
-    });
+	requestParams.value = Other.deepClone(state.queryParams);
+	requestParams.value.StartTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[0];
+	requestParams.value.EndTime = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
+	Reflect.deleteProperty(requestParams.value, 'crTime');
+	state.loading = true;
+	departmentUnSign(requestParams.value)
+		.then((response: any) => {
+			state.tableData = response?.result.items ?? [];
+			state.total = response?.result.total;
+			state.loading = false;
+		})
+		.catch(() => {
+			state.loading = false;
+		});
 };
 /** 重置按钮操作 */
 const resetQuery = (formEl: FormInstance | undefined) => {
-  if (!formEl) return;
-  formEl.resetFields();
-  queryList();
+	if (!formEl) return;
+	formEl.resetFields();
+	queryList();
 };
 onMounted(() => {
-  queryList();
+	queryList();
 });
-</script>
+</script>

+ 8 - 9
src/views/system/user/index.vue

@@ -246,18 +246,17 @@ const getTelsListFn = async () => {
 	let tels, telGroup;
 	if (import.meta.env.VITE_CURRENT_CITY === 'zigong') {
 		[tels, telGroup] = await Promise.all([getCallCenterList(), getCallCenterGroupList()]);
-		tels.result = tels.result.map((item: any) => {
-			return {
-				...item,
-				telNo: item.no,
-			};
-		});
 	} else if (import.meta.env.VITE_CURRENT_CITY === 'yibin') {
-		[tels, telGroup] = await Promise.all([getTelList()]);
+		[tels] = await Promise.all([getTelList()]);
+    tels.result = tels.result.map((item: any) => {
+      return {
+        ...item,
+        no: item.telNo,
+      };
+    });
 	} else {
-		[tels, telGroup] = await Promise.all([getTelList()]);
+		[tels] = await Promise.all([getTelList()]);
 	}
-	console.log(tels);
 	state.telsList = tels?.result ?? [];
 	state.telsListGroup = telGroup?.result ?? [];
 };

+ 10 - 10
src/views/tels/extension/index.vue

@@ -16,39 +16,39 @@
 					>
 						<template #tableHeader="scope">
 							<el-radio-group v-model="telState" class="mb10" @change="search">
-								<el-radio label=" "
+								<el-radio value=" "
 									>总数:
-									<el-tag type="">{{ state.tableList.length }}</el-tag>
+									<el-tag>{{ state.tableList.length }}</el-tag>
 								</el-radio>
-								<el-radio label="device"
+								<el-radio value="device"
 									>注册数:
 									<el-tag type="success">{{ registerCount }}</el-tag>
 								</el-radio>
-								<el-radio label="login"
+								<el-radio value="login"
 									>签入数:
 									<el-tag type="danger">{{ loginCount }}</el-tag>
 								</el-radio>
-								<el-radio label="ready"
+								<el-radio value="ready"
 									>示闲数:
 									<el-tag type="info">{{ readyCount }}</el-tag>
 								</el-radio>
-								<el-radio label="unready"
+								<el-radio value="unready"
 									>小休数:
 									<el-tag type="success">{{ unreadyCount }}</el-tag>
 								</el-radio>
-								<el-radio label="busy"
+								<el-radio value="busy"
 									>通话数:
 									<el-tag type="danger">{{ busyCount }}</el-tag>
 								</el-radio>
-								<el-radio label="acw"
+								<el-radio value="acw"
 									>整理数:
 									<el-tag type="info">{{ acwCount }}</el-tag>
 								</el-radio>
-								<el-radio label="held"
+								<el-radio value="held"
 									>保持数:
 									<el-tag type="success">{{ heldCount }}</el-tag>
 								</el-radio>
-								<el-radio label="threeWay"
+								<el-radio value="threeWay"
 									>三方会议数:
 									<el-tag type="danger">{{ threeWayCount }}</el-tag>
 								</el-radio>

+ 4 - 3
src/views/todo/seats/accept/Voice-assistant.vue

@@ -280,14 +280,15 @@ const wsNotice = (message: any) => {
 };
 // 消息筛选
 const filterMessage = (type: string) => {
+  console.log(type, '消息筛选-坐席辅助')
 	switch (type) {
-		case '市民':
+		case 'user':
 			showMessageList.value = messageList.value.filter((item: any) => item.body.content.callSentenceInfo.role === 'user');
 			break;
-		case '坐席':
+		case 'agent':
 			showMessageList.value = messageList.value.filter((item: any) => item.body.content.callSentenceInfo.role === 'agent');
 			break;
-		case '全部':
+		case 'all':
 			showMessageList.value = messageList.value;
 			break;
 		default:

+ 21 - 8
src/views/todo/seats/accept/index.vue

@@ -7,11 +7,24 @@
 					<el-card shadow="never">
 						<div class="flex-center-between pb10">
 							<p class="border-title mb10">语音助手</p>
-							<el-radio-group v-model="voiceType" @change="changeVoiceType" size="small">
-								<el-radio-button label="全部" />
-								<el-radio-button label="市民" />
-								<el-radio-button label="坐席" />
-							</el-radio-group>
+              <el-segmented
+                  :options="[
+                      {
+										value: '',
+										label: '全部',
+									},
+									{
+										value: 'user',
+										label: '市民',
+									},
+									{
+										value: 'agent',
+										label: '坐席',
+									},
+								]"
+                  v-model="voiceType"
+                  @change="changeVoiceType"
+              />
 						</div>
 						<voice-assistant @orderOverwrite="orderOverwrite" ref="voiceAssistantRef" />
 					</el-card>
@@ -146,14 +159,14 @@
 								<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
 									<el-form-item label="来电人性别" prop="fromGender" :rules="[{ required: true, message: '请选择来电人性别', trigger: 'change' }]">
 										<el-radio-group v-model="state.ruleForm.fromGender">
-											<el-radio :label="item.key" v-for="item in state.genderOptions" :key="item.key">{{ item.value }}</el-radio>
+											<el-radio :value="item.key" v-for="item in state.genderOptions" :key="item.key">{{ item.value }}</el-radio>
 										</el-radio-group>
 									</el-form-item>
 								</el-col>
 								<el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
 									<el-form-item label="来电人身份" prop="identityType" :rules="[{ required: true, message: '请选择来电人身份', trigger: 'change' }]">
 										<el-radio-group v-model="state.ruleForm.identityType" @change="selectIdentity">
-											<el-radio :label="item.key" v-for="item in state.identityTypeOptions" :key="item.key">{{ item.value }}</el-radio>
+											<el-radio :value="item.key" v-for="item in state.identityTypeOptions" :key="item.key">{{ item.value }}</el-radio>
 										</el-radio-group>
 									</el-form-item>
 								</el-col>
@@ -652,7 +665,7 @@ state.ruleForm.acceptorName = userInfos.value.name; // 员工姓名
 state.ruleForm.acceptorStaffNo = userInfos.value.staffNo; // 员工工号
 const route = useRoute(); // 路由
 const router = useRouter(); // 路由
-const voiceType = ref('全部');
+const voiceType = ref('');
 // 选择坐席还是市民通话内容
 const voiceAssistantRef = ref<RefType>();
 const changeVoiceType = () => {

ファイルの差分が大きいため隠しています
+ 338 - 376
yarn.lock


この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません