Bläddra i källkod

reactor: 待发布、待回访做数据权限;

zhangchong 10 månader sedan
förälder
incheckning
4f4462daad

+ 12 - 4
src/theme/app.scss

@@ -504,14 +504,22 @@ li {
 /* 即将超期状态样式 */
 .overdue-status-1 {
 	@extend .overdue-circle;
-	background-color: #F49934;
+	background-color: #f49934;
 }
 /* 已超期状态样式 */
 .overdue-status-2 {
 	@extend .overdue-circle;
-	background-color: #D70024;
+	background-color: #d70024;
 }
 /* 关键词查询输入框宽度 */
-.keyword-input{
+.keyword-input {
 	width: 250px;
-}
+}
+/* 快捷查询标题 */
+.fast-search-label {
+	color: var(--el-text-color-regular);
+	display: inline-block;
+	width: 100px;
+	text-align: right;
+	padding-right: 12px;
+}

+ 78 - 28
src/views/auxiliary/message/index.vue

@@ -1,34 +1,66 @@
 <template>
 	<div class="auxiliary-message-container layout-pd">
 		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" inline @submit.native.prevent>
-				<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="timeStartChangeCr"
-						value-format="YYYY-MM-DD[T]HH:mm:ss"
-					/>
-				</el-form-item>
-				<el-form-item label="短信类型" prop="PushBusiness">
-					<el-select v-model="state.queryParams.PushBusiness" placeholder="请选择短信类型" @change="handleQuery">
-						<el-option v-for="item in ePushBusinessData" :value="item.key" :key="item.key" :label="item.value" />
-					</el-select>
-				</el-form-item>
-				<el-form-item label="发送状态" prop="Status">
-					<el-select v-model="state.queryParams.Status" placeholder="请选择发送状态" @change="handleQuery">
-						<el-option v-for="item in eSendStateData" :value="item.key" :key="item.key" :label="item.value" />
-					</el-select>
-				</el-form-item>
-				<el-form-item>
-					<el-button type="primary" @click="queryList" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
-					<el-button @click="resetQuery(ruleFormRef)" v-waves class="default-button"> <SvgIcon name="ele-Refresh" class="mr5" />重置 </el-button>
-				</el-form-item>
+			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent>
+				<el-row :gutter="20">
+					<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="timeStartChangeCr"
+								value-format="YYYY-MM-DD[T]HH:mm:ss"
+							/>
+						</el-form-item>
+					</el-col>
+					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
+						<el-form-item label="电话号码" prop="TelNumber">
+							<el-input v-model="state.queryParams.TelNumber" 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="UserName">
+							<el-input v-model="state.queryParams.UserName" placeholder="接收人" clearable @keyup.enter="handleQuery" />
+						</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">
+							<el-form-item label="短信类型" prop="PushBusiness">
+								<el-select v-model="state.queryParams.PushBusiness" placeholder="请选择短信类型" @change="handleQuery" class="w100">
+									<el-option v-for="item in ePushBusinessData" :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="Status">
+								<el-select v-model="state.queryParams.Status" placeholder="请选择发送状态" @change="handleQuery" class="w100">
+									<el-option v-for="item in eSendStateData" :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">
+								<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">
@@ -94,10 +126,17 @@ const state = reactive<any>({
 		PageSize: 10,
 		PushBusiness: null, // 短信类型
 		Status: null, // 推送状态
+		TelNumber: null,
+		UserName: null,
 	},
 	total: 0, // 总条数
 	tableData: [], // 表格数据
 });
+const searchCol = ref(true); // 展开/收起
+// 展开/收起
+const closeSearch = () => {
+	searchCol.value = !searchCol.value;
+};
 const handleTimeChange = (val: string[], startKey: string, endKey: string) => {
 	if (val) {
 		state.queryParams[startKey] = val[0];
@@ -180,3 +219,14 @@ onMounted(() => {
 	queryList();
 });
 </script>
+<style scoped lang="scss">
+.auxiliary-message-container {
+	.arrow {
+		transition: transform var(--el-transition-duration);
+		cursor: pointer;
+	}
+	.arrow.is-reverse {
+		transform: rotateZ(-180deg);
+	}
+}
+</style>

+ 1 - 1
src/views/business/discern/apply.vue

@@ -3,7 +3,7 @@
 		<!-- 搜索  -->
 		<el-card shadow="never">
 			<div class="flex-center-align mb20">
-				<span style="color: var(--el-text-color-regular); display: inline-block; width: 100px; text-align: right; padding-right: 12px">快捷查询</span>
+				<span class="fast-search-label">快捷查询</span>
 				<el-radio-group v-model="fastSearch" @change="fastSearchChange">
 					<el-radio-button label="all">全部</el-radio-button>
 					<el-radio-button label="city">市工单</el-radio-button>

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

@@ -2,7 +2,7 @@
 	<div class="business-order-container layout-pd">
 		<el-card shadow="never">
 			<div class="flex-center-align mb20">
-				<span style="color: var(--el-text-color-regular); display: inline-block; width: 100px; text-align: right; padding-right: 12px">快捷查询</span>
+				<span class="fast-search-label">快捷查询</span>
 				<el-radio-group v-model="fastSearch" @change="fastSearchChange">
 					<el-radio-button label="all">全部</el-radio-button>
 					<el-radio-button label="city">市工单</el-radio-button>

+ 8 - 4
src/views/business/publish/index.vue

@@ -3,10 +3,13 @@
 		<!-- 搜索  -->
 		<el-card shadow="never">
 			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="关键词" prop="Keyword">
-					<el-input v-model="state.queryParams.Keyword" placeholder="工单编码/标题" clearable @keyup.enter="handleQuery" class="keyword-input" />
+				<el-form-item label="工单标题" prop="Keyword">
+					<el-input v-model="state.queryParams.Keyword" placeholder="工单编标题" clearable @keyup.enter="handleQuery" class="keyword-input" />
 				</el-form-item>
-<!--				<el-form-item label="处理结果" prop="Resolve">
+				<el-form-item label="工单编码" prop="No">
+					<el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" class="keyword-input" />
+				</el-form-item>
+				<!--				<el-form-item label="处理结果" prop="Resolve">
 					<el-select v-model="state.queryParams.Resolve" placeholder="请选择处理结果" @change="handleQuery">
 						<el-option label="已得到解决" value="true" />
 						<el-option label="未得到解决" value="false" />
@@ -14,7 +17,7 @@
 				</el-form-item>-->
 				<el-form-item>
 					<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
-					<el-button @click="resetQuery(ruleFormRef)" v-waves class="default-button" :loading="state.loading">
+					<el-button @click="resetQuery(ruleFormRef)" class="default-button" :loading="state.loading">
 						<SvgIcon name="ele-Refresh" class="mr5" />重置
 					</el-button>
 				</el-form-item>
@@ -118,6 +121,7 @@ const state = reactive({
 		PageIndex: 1,
 		PageSize: 10,
 		Keyword: null, // 关键词
+		No: null,
 		Resolve: null, // 处理结果
 	},
 	tableData: [], //表单

+ 73 - 23
src/views/business/publish/todo.vue

@@ -2,28 +2,58 @@
 	<div class="business-publish-todo-container layout-pd">
 		<!-- 搜索  -->
 		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
-				<el-form-item label="关键词" prop="Keyword">
-					<el-input v-model="state.queryParams.Keyword" placeholder="工单编码/标题" clearable @keyup.enter="handleQuery" class="keyword-input" />
-				</el-form-item>
-				<el-form-item label="归档类型" prop="FiledType">
-					<el-select v-model="state.queryParams.FiledType" placeholder="请选择归档类型" @change="handleQuery">
-						<el-option label="中心归档" value="10" />
-						<el-option label="部门归档" value="20" />
-					</el-select>
-				</el-form-item>
-				<el-form-item label="是否会签" prop="IsCountersign">
-					<el-select v-model="state.queryParams.IsCountersign" placeholder="请选择是否会签" @change="handleQuery">
-						<el-option label="是" value="true" />
-						<el-option label="否" value="false" />
-					</el-select>
-				</el-form-item>
-				<el-form-item>
-					<el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
-					<el-button @click="resetQuery(ruleFormRef)" class="default-button" :loading="state.loading">
-						<SvgIcon name="ele-Refresh" class="mr5" />重置
-					</el-button>
-				</el-form-item>
+			<div class="flex-center-align mb20" v-auth="'business:publish:todo:querySelf'">
+				<span class="fast-search-label">数据范围</span>
+				<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>
+			</div>
+			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
+				<el-row :gutter="10">
+					<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="FiledType">
+							<el-select v-model="state.queryParams.FiledType" placeholder="请选择归档类型" @change="handleQuery" class="w100">
+								<el-option label="中心归档" value="10" />
+								<el-option label="部门归档" value="20" />
+							</el-select>
+						</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">
+							<el-form-item label="是否会签" prop="IsCountersign">
+								<el-select v-model="state.queryParams.IsCountersign" placeholder="请选择是否会签" @change="handleQuery" class="w100">
+									<el-option label="是" value="true" />
+									<el-option label="否" value="false" />
+								</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">
+								<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">
@@ -77,15 +107,23 @@ const state = reactive({
 		// 查询条件
 		PageIndex: 1,
 		PageSize: 10,
-		Keyword: null, // 关键词
+		OrderTitle: null, // 关键词
+		No: null,
 		FiledType: null, // 归档类型
 		IsCountersign: null, // 是否会签
+		Keyword: null, // 标题
+		QuerySelf: true, // 是否只查询自己的待发布工单
 	},
 	tableData: [], //表单
 	loading: false, // 加载
 	total: 0, // 总数
 });
 const proTableRef = ref<RefType>(); // 表格ref
+const searchCol = ref(true); // 展开/收起
+// 展开/收起
+const closeSearch = () => {
+	searchCol.value = !searchCol.value;
+};
 const selectable = (row: any) => {
 	//设置省工单和会签工单不可选(不可批量发布)
 	return !row.isProvince && row.counterSignType === null;
@@ -150,6 +188,7 @@ const queryList = () => {
 const resetQuery = (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.resetFields();
+	state.queryParams.QuerySelf = true;
 	queryList();
 };
 // 批量发布
@@ -186,3 +225,14 @@ onMounted(() => {
 	queryList();
 });
 </script>
+<style scoped lang="scss">
+.business-publish-todo-container {
+	.arrow {
+		transition: transform var(--el-transition-duration);
+		cursor: pointer;
+	}
+	.arrow.is-reverse {
+		transform: rotateZ(-180deg);
+	}
+}
+</style>

+ 10 - 1
src/views/business/visit/todo.vue

@@ -2,7 +2,14 @@
 	<div class="business-visit-todo-container layout-pd">
 		<!-- 搜索  -->
 		<el-card shadow="never">
-			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent>
+      <div class="flex-center-align mb20" v-auth="'business:visit:todo:querySelf'">
+        <span class="fast-search-label">数据范围</span>
+        <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>
+      </div>
+			<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
 				<el-row :gutter="20">
 					<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
 						<el-form-item label="工单标题" prop="Keyword">
@@ -186,6 +193,7 @@ const state = reactive({
 		VisitState: '2', // 回访状态 待回访
 		VisitType: null, // 回访方式
 		No: null,
+    QuerySelf:true, // 是否只查询自己的待回访工单
 	},
 	tableData: [], //表单
 	loading: false, // 加载
@@ -221,6 +229,7 @@ const queryList = () => {
 const resetQuery = (formEl: FormInstance | undefined) => {
 	if (!formEl) return;
 	formEl.resetFields();
+  state.queryParams.QuerySelf = true;
 	queryList();
 };
 // 短信回访

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

@@ -2,7 +2,7 @@
 	<div class="judicial-order-container layout-pd">
 		<el-card shadow="never">
 			<div class="flex-center-align mb20">
-				<span style="color: var(--el-text-color-regular); display: inline-block; width: 100px; text-align: right; padding-right: 12px">快捷查询</span>
+				<span class="fast-search-label">快捷查询</span>
 				<el-radio-group v-model="fastSearch" @change="fastSearchChange">
 					<el-radio-button label="all">全部</el-radio-button>
 					<el-radio-button label="IsTheClueTrue">线索属实</el-radio-button>

+ 1 - 2
src/views/todo/seats/accept/Knowledge.vue

@@ -48,8 +48,7 @@
 		:total="state.knowledgeTotal"
 		v-model:current-page="state.queryParams.PageIndex"
 		v-model:page-size="state.queryParams.PageSize"
-		:pageSizes="[5, 10, 15, 20]"
-		layout="total, prev, pager, next"
+		layout="prev, pager, next"
 		class="pt10"
 	/>
 </template>