Browse Source

reactor:中国政府网发布调整;工单受理推送分类BUG修复;

zhangchong 7 tháng trước cách đây
mục cha
commit
65ea6e562d

+ 111 - 171
src/views/business/publish/component/Order-publish.vue

@@ -1,173 +1,101 @@
 <template>
-	<el-dialog v-model="state.dialogVisible" draggable :title="dialogTitle" ref="dialogRef" width="50%" append-to-body destroy-on-close @close="close">
+	<el-dialog v-model="state.dialogVisible" draggable :title="dialogTitle" ref="dialogRef" append-to-body destroy-on-close @close="close">
 		<div class="collapse-container">
 			<el-form label-width="100px" ref="ruleFormRef" :model="state.ruleForm" v-loading="state.loading">
 				<el-row :gutter="10" class="w100">
-<!--					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="isZGZFW">
-						<el-row :gutter="0">
-							<el-divider content-position="left">
-								<el-text tag="b" size="large"> 中国政府网 </el-text>
-							</el-divider>
-							<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-								<el-form-item label="是否公开" prop="proPublishState" :rules="[{ required: false, message: '请选择是否公开', trigger: 'change' }]">
-									<el-radio-group v-model="state.ruleForm.proPublishState" :disabled="disabled">
-										<el-radio :value="true">公开</el-radio>
-										<el-radio :value="false">不公开</el-radio>
-									</el-radio-group>
-								</el-form-item>
-							</el-col>
-							<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-								<el-form-item label="反馈人电话" prop="feedBackPhone" :rules="[{ required: false, message: '请填写反馈人电话', trigger: 'blur' }]">
-									<el-input placeholder="请填写反馈人电话" v-model="state.ruleForm.feedBackPhone" clearable :disabled="disabled"></el-input>
-								</el-form-item>
-							</el-col>
-							<el-col :xs="24" :sm="12" :md="24" :lg="24" :xl="24" v-if="!state.ruleForm.proPublishState">
-								<el-form-item label="不公开原因" prop="noPubReason" :rules="[{ required: true, message: '请填写不公开原因', trigger: 'blur' }]">
-									<el-input
-										type="textarea"
-										placeholder="请填写不公开原因"
-										:autosize="{ minRows: 6, maxRows: 10 }"
-										v-model="state.ruleForm.noPubReason"
-										:disabled="disabled"
-									></el-input>
-								</el-form-item>
-							</el-col>
-							<el-col :xs="24" :sm="12" :md="24" :lg="24" :xl="24" v-if="state.ruleForm.proPublishState">
-								<el-form-item label="答复口径" prop="noPubReason" :rules="[{ required: true, message: '请填写答复口径', trigger: 'blur' }]">
-									<el-input
-										type="textarea"
-										placeholder="请填写答复口径"
-										:autosize="{ minRows: 6, maxRows: 10 }"
-										v-model="state.ruleForm.noPubReason"
-										:disabled="disabled"
-									></el-input>
-								</el-form-item>
-							</el-col>
-								<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-									<el-form-item label="是否联系" prop="isContact" :rules="[{ required: true, message: '请选择是否公开', trigger: 'change' }]">
-										<el-radio-group v-model="state.ruleForm.isContact" :disabled="disabled">
-											<el-radio :value="true">是</el-radio>
-											<el-radio :value="false">否</el-radio>
-										</el-radio-group>
-									</el-form-item>
-								</el-col>
-								<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-									<el-form-item label="是否评价" prop="isVisited" :rules="[{ required: true, message: '请选择是否公开', trigger: 'change' }]">
-										<el-radio-group v-model="state.ruleForm.isVisited" :disabled="disabled">
-											<el-radio :value="true">是</el-radio>
-											<el-radio :value="false">否</el-radio>
-										</el-radio-group>
-									</el-form-item>
-								</el-col>
-								<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-									<el-form-item label="网民评价" prop="netizen" :rules="[{ required: state.ruleForm.isVisited, message: '请选择网民评价', trigger: 'change' }]">
-										<el-radio-group v-model="state.ruleForm.netizen" :disabled="disabled">
-											<el-radio :value="item.key" v-for="item in netizenEvaluateType" :key="item.key">{{ item.value }}</el-radio>
-										</el-radio-group>
-									</el-form-item>
-								</el-col>
-								<el-col :xs="24" :sm="12" :md="24" :lg="24" :xl="24">
-									<el-form-item label="评价内容" prop="evaluateContent" :rules="[{ required: state.ruleForm.netizen === '0' && state.ruleForm.isVisited, message: '请填写评价内容', trigger: 'blur' }]">
-										<el-input
-											type="textarea"
-											placeholder="请填写评价内容"
-											:autosize="{ minRows: 6, maxRows: 10 }"
-											v-model="state.ruleForm.evaluateContent"
-											:disabled="disabled"
-										></el-input>
-									</el-form-item>
-								</el-col>
-								<el-col :xs="24" :sm="12" :md="24" :lg="24" :xl="24">
-									<el-form-item label="备注" prop="remark" :rules="[{ required: false, message: '请填写备注', trigger: 'blur' }]">
-										<el-input
-											type="textarea"
-											placeholder="请填写备注"
-											:autosize="{ minRows: 6, maxRows: 10 }"
-											v-model="state.ruleForm.remark"
-											:disabled="disabled"
-										></el-input>
-									</el-form-item>
-								</el-col>
-						</el-row>
-					</el-col>-->
-					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" v-if="state.orderDetail.isProvince">
-						<el-row :gutter="0">
-							<el-divider content-position="left">
-								<el-text tag="b" size="large"> 中国政府网 </el-text>
-							</el-divider>
-							<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-								<el-form-item label="是否公开" prop="proPublishState" :rules="[{ required: false, message: '请选择是否公开', trigger: 'change' }]">
-									<el-radio-group v-model="state.ruleForm.proPublishState" :disabled="disabled">
-										<el-radio :value="false">不公开</el-radio>
-										<el-radio :value="true">公开</el-radio>
-									</el-radio-group>
-								</el-form-item>
-							</el-col>
-							<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-								<el-form-item label="反馈人电话" prop="feedBackPhone" :rules="[{ required: false, message: '请填写反馈人电话', trigger: 'blur' }]">
-									<el-input placeholder="请填写反馈人电话" v-model="state.ruleForm.feedBackPhone" clearable :disabled="disabled"></el-input>
-								</el-form-item>
-							</el-col>
-							<el-col :xs="24" :sm="12" :md="24" :lg="24" :xl="24" v-if="!state.ruleForm.proPublishState">
-								<el-form-item label="不公开原因" prop="noPubReason" :rules="[{ required: false, message: '请填写不公开原因', trigger: 'blur' }]">
-									<el-input
-										type="textarea"
-										placeholder="请填写不公开原因"
-										:autosize="{ minRows: 6, maxRows: 10 }"
-										v-model="state.ruleForm.noPubReason"
-										:disabled="disabled"
-									></el-input>
-								</el-form-item>
-							</el-col>
-							<template v-if="isZGZFW">
-								<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-									<el-form-item label="是否联系" prop="isContact" :rules="[{ required: true, message: '请选择是否公开', trigger: 'change' }]">
-										<el-radio-group v-model="state.ruleForm.isContact" :disabled="disabled">
-											<el-radio :value="true">是</el-radio>
-											<el-radio :value="false">否</el-radio>
-										</el-radio-group>
-									</el-form-item>
-								</el-col>
-								<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
-									<el-form-item label="是否评价" prop="isVisited" :rules="[{ required: true, message: '请选择是否公开', trigger: 'change' }]">
-										<el-radio-group v-model="state.ruleForm.isVisited" :disabled="disabled">
-											<el-radio :value="true">是</el-radio>
-											<el-radio :value="false">否</el-radio>
-										</el-radio-group>
-									</el-form-item>
-								</el-col>
-								<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
-									<el-form-item label="网民评价" prop="netizen" :rules="[{ required: false, message: '请选择网民评价', trigger: 'change' }]">
-										<el-radio-group v-model="state.ruleForm.netizen" :disabled="disabled">
-											<el-radio :value="item.key" v-for="item in netizenEvaluateType" :key="item.key">{{ item.value }}</el-radio>
-										</el-radio-group>
-									</el-form-item>
-								</el-col>
-								<el-col :xs="24" :sm="12" :md="24" :lg="24" :xl="24" v-if="state.ruleForm.isVisited">
-									<el-form-item label="评价内容" prop="evaluateContent" :rules="[{ required: false, message: '请填写评价内容', trigger: 'blur' }]">
-										<el-input
-											type="textarea"
-											placeholder="请填写评价内容"
-											:autosize="{ minRows: 6, maxRows: 10 }"
-											v-model="state.ruleForm.evaluateContent"
-											:disabled="disabled"
-										></el-input>
-									</el-form-item>
-								</el-col>
-								<el-col :xs="24" :sm="12" :md="24" :lg="24" :xl="24">
-									<el-form-item label="备注" prop="remark" :rules="[{ required: false, message: '请填写备注', trigger: 'blur' }]">
-										<el-input
-											type="textarea"
-											placeholder="请填写备注"
-											:autosize="{ minRows: 6, maxRows: 10 }"
-											v-model="state.ruleForm.remark"
-											:disabled="disabled"
-										></el-input>
-									</el-form-item>
-								</el-col>
-							</template>
-						</el-row>
-					</el-col>
+					<template v-if="isZGZFW">
+						<el-divider content-position="left">
+							<el-text tag="b" size="large"> 中国政府网 </el-text>
+						</el-divider>
+						<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+							<el-form-item label="是否公开" prop="proPublishState" :rules="[{ required: false, message: '请选择是否公开', trigger: 'change' }]">
+								<el-radio-group v-model="state.ruleForm.proPublishState" :disabled="disabled">
+									<el-radio :value="true">公开</el-radio>
+									<el-radio :value="false">不公开</el-radio>
+								</el-radio-group>
+							</el-form-item>
+						</el-col>
+						<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+							<el-form-item label="反馈人电话" prop="feedBackPhone" :rules="[{ required: false, message: '请填写反馈人电话', trigger: 'blur' }]">
+								<el-input placeholder="请填写反馈人电话" v-model="state.ruleForm.feedBackPhone" clearable :disabled="disabled"></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :xs="24" :sm="12" :md="24" :lg="24" :xl="24" v-if="!state.ruleForm.proPublishState">
+							<el-form-item label="不公开原因" prop="noPubReason" :rules="[{ required: true, message: '请填写不公开原因', trigger: 'blur' }]">
+								<el-input
+									type="textarea"
+									placeholder="请填写不公开原因"
+									:autosize="{ minRows: 6, maxRows: 10 }"
+									v-model="state.ruleForm.noPubReason"
+									:disabled="disabled"
+								></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :xs="24" :sm="12" :md="24" :lg="24" :xl="24" v-if="state.ruleForm.proPublishState">
+							<el-form-item label="答复口径" prop="answerContent" :rules="[{ required: true, message: '请填写答复口径', trigger: 'blur' }]">
+								<el-input
+									type="textarea"
+									placeholder="请填写答复口径"
+									:autosize="{ minRows: 6, maxRows: 10 }"
+									v-model="state.ruleForm.answerContent"
+									:disabled="disabled"
+								></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+							<el-form-item label="是否联系" prop="isContact" :rules="[{ required: true, message: '请选择是否公开', trigger: 'change' }]">
+								<el-radio-group v-model="state.ruleForm.isContact" :disabled="disabled">
+									<el-radio :value="true">是</el-radio>
+									<el-radio :value="false">否</el-radio>
+								</el-radio-group>
+							</el-form-item>
+						</el-col>
+						<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+							<el-form-item label="是否评价" prop="isVisited" :rules="[{ required: true, message: '请选择是否公开', trigger: 'change' }]">
+								<el-radio-group v-model="state.ruleForm.isVisited" :disabled="disabled">
+									<el-radio :value="true">是</el-radio>
+									<el-radio :value="false">否</el-radio>
+								</el-radio-group>
+							</el-form-item>
+						</el-col>
+						<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+							<el-form-item
+								label="网民评价"
+								prop="netizen"
+								:rules="[{ required: state.ruleForm.isVisited, message: '请选择网民评价', trigger: 'change' }]"
+							>
+								<el-radio-group v-model="state.ruleForm.netizen" :disabled="disabled">
+									<el-radio :value="item.key" v-for="item in netizenEvaluateType" :key="item.key">{{ item.value }}</el-radio>
+								</el-radio-group>
+							</el-form-item>
+						</el-col>
+						<el-col :xs="24" :sm="12" :md="24" :lg="24" :xl="24">
+							<el-form-item
+								label="评价内容"
+								prop="evaluateContent"
+								:rules="[{ required: state.ruleForm.netizen === '0' && state.ruleForm.isVisited, message: '请填写评价内容', trigger: 'blur' }]"
+							>
+								<el-input
+									type="textarea"
+									placeholder="请填写评价内容"
+									:autosize="{ minRows: 6, maxRows: 10 }"
+									v-model="state.ruleForm.evaluateContent"
+									:disabled="disabled"
+								></el-input>
+							</el-form-item>
+						</el-col>
+						<el-col :xs="24" :sm="12" :md="24" :lg="24" :xl="24">
+							<el-form-item label="备注" prop="remark" :rules="[{ required: false, message: '请填写备注', trigger: 'blur' }]">
+								<el-input
+									type="textarea"
+									placeholder="请填写备注"
+									:autosize="{ minRows: 6, maxRows: 10 }"
+									v-model="state.ruleForm.remark"
+									:disabled="disabled"
+								></el-input>
+							</el-form-item>
+						</el-col>
+					</template>
 					<el-divider content-position="left">
 						<el-text tag="b" size="large"> 市工单发布内容 </el-text>
 					</el-divider>
@@ -215,7 +143,7 @@
 							</el-radio-group>
 						</el-form-item>
 					</el-col>
-<!--					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+					<!--					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
 						<el-form-item label="处理结果" prop="resolve" :rules="[{ required: true, message: '请选择处理结果', trigger: 'change' }]">
 							<el-radio-group v-model="state.ruleForm.resolve" :disabled="disabled">
 								<el-radio :value="true">已得到解决</el-radio>
@@ -241,8 +169,19 @@
 		<template #footer v-if="!disabled">
 			<span class="dialog-footer">
 				<el-button @click="closeDialog" class="default-button" :loading="state.loading">取 消</el-button>
-				<el-button type="primary" @click="onReturn" title="业务信件退回" v-auth="'business:publish:return'" :loading="state.loading"> 退回 </el-button>
-				<el-button type="primary" @click="onRedo" title="业务信件重办" v-auth="'business:publish:redo'" :loading="state.loading" v-if="['ZiGong'].includes(themeConfig.appScope)"> 重办 </el-button>
+				<el-button type="primary" @click="onReturn" title="业务信件退回" v-auth="'business:publish:return'" :loading="state.loading">
+					退回
+				</el-button>
+				<el-button
+					type="primary"
+					@click="onRedo"
+					title="业务信件重办"
+					v-auth="'business:publish:redo'"
+					:loading="state.loading"
+					v-if="['ZiGong'].includes(themeConfig.appScope)"
+				>
+					重办
+				</el-button>
 				<el-button type="primary" @click="onPublish(ruleFormRef)" v-if="!disabled" :loading="state.loading">发布</el-button>
 			</span>
 		</template>
@@ -273,6 +212,7 @@ const state = reactive<any>({
 		isVisited: true, // 是否评价
 		feedBackPhone: '', // 反馈人电话
 		noPubReason: '', // 不公开原因
+		answerContent: '', // 答复口径
 		arrangeContent: '', // 整改后内容
 		arrangeOpinion: '', // 整改后结果
 		idNames: [], // 需回访部门
@@ -297,7 +237,7 @@ const { themeConfig } = storeToRefs(storesThemeConfig);
 const openDialog = async (row: any, isDisabled: boolean = false) => {
 	disabled.value = isDisabled;
 	state.loading = true;
-  state.dialogVisible = true;
+	state.dialogVisible = true;
 	try {
 		if (isDisabled) {
 			state.orderDetail = row.order ?? {};
@@ -346,7 +286,7 @@ const onPublish = (formEl: FormInstance | undefined) => {
 	formEl.validate((valid: boolean) => {
 		if (!valid) return;
 		state.loading = true;
-		let idNames:EmptyArrayType;
+		let idNames: EmptyArrayType;
 		state.ruleForm.netizenEvaluate = netizenEvaluateType.value.find((item) => item.key === state.ruleForm.netizen);
 		if (state.ruleForm.idNames.length > 0) {
 			// 如果选择了部门

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

@@ -75,7 +75,7 @@ const columns = ref<any[]>([
 	{ prop: 'order.statusText', label: '工单状态', minWidth: 100 },
 	{ prop: 'order.acceptType', label: '受理类型', minWidth: 100 },
 	{ prop: 'order.hotspotName', label: '热点分类', minWidth: 150 },
-	{ prop: 'acceptorName', label: '受理人', minWidth: 120 },
+	{ prop: 'order.acceptorName', label: '受理人', minWidth: 120 },
 	{ prop: 'order.actualHandleOrgName', label: '接办部门', minWidth: 140 },
   {
     prop: 'publishTime',

+ 13 - 19
src/views/todo/seats/accept/ybAccept.vue

@@ -677,15 +677,20 @@ const selectCompany = (row: any) => {
 	state.ruleForm.zhuanBanMingCheng = row.specialTeamName;
 	state.ruleForm.zhuanBanCode = row.specialTeamCode;
 };
-// 证件号码验证
-const licenceNoPattern = computed(() => {
-	switch (state.ruleForm.licenceTypeCode) {
-		case '10': // 身份证
-			return /^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/;
-		default: //默认只允许数字字母
-			return /^[A-Za-z0-9]+$/;
+// 选择来点人身份如果是企业 推送分类自动选择助企纾困
+const selectIdentity = (val: number) => {
+	if (val === 2) {
+		const item = state.pushTypeOptions.find((item: any) => item.dicDataValue === '8'); // 助企纾困
+		// 如果已经选择了助企纾困就不添加
+		if(item){
+			if (state.ruleForm.orderPushTypes.includes(item)) return;
+			state.ruleForm.orderPushTypes.push(item);
+		}
+	}else{
+		// 如果选择其他需要清除
+		state.ruleForm.orderPushTypes = state.ruleForm.orderPushTypes.filter((item: any) => item.dicDataValue !== '8');
 	}
-});
+};
 // 选择事件分类
 const chooseEvent = (val: any, node: any, externalArr: any) => {
 	state.ruleForm.eventCategoryName = val?.eventName; // 事件分类名称
@@ -993,17 +998,6 @@ const save = throttle((formEl: FormInstance | undefined) => {
 		}
 	});
 }, 300);
-// 选择来点人身份如果是企业 推送分类自动选择助企纾困
-const selectIdentity = (val: number) => {
-	if (val === 2) {
-		const item = state.pushTypeOptions.find((item: any) => item.dicDataValue === '8'); // 助企纾困
-		// 如果已经选择了助企纾困就不添加
-		if(item){
-			if (state.ruleForm.orderPushTypes.includes(item)) return;
-			state.ruleForm.orderPushTypes.push(item);
-		}
-	}
-};
 // 流程审批
 const processAuditRef = ref<RefType>();
 const processOrder = (orderDetail: any, isAgent: boolean) => {

+ 4 - 4
src/views/todo/seats/accept/zgAccept.vue

@@ -578,13 +578,13 @@ const changeChannel = (val: any) => {
 	} else {
 		ruleFormRef.value.resetFields('fromPhone'); // 清除来电号码
 	}
-	const item = state.pushTypeOptions.find((item: any) => item.pushTypeCode === '7'); // 110
+	const item = state.pushTypeOptions.find((item: any) => item.dicDataValue === '7'); // 110
 	if (['110', 'YB110'].includes(val?.dicDataValue)) {
 		// 如果来源渠道选择了110 推送分类联动选择110
 		state.ruleForm.orderPushTypes.push(item);
 	} else {
 		// 清除110选择
-		state.ruleForm.orderPushTypes = state.ruleForm.orderPushTypes.filter((item: any) => item.pushTypeCode !== '7');
+		state.ruleForm.orderPushTypes = state.ruleForm.orderPushTypes.filter((item: any) => item.dicDataValue !== '7');
 	}
 };
 // 选择热点分类
@@ -596,7 +596,7 @@ const chooseHotSpot = (val: any, node: any, externalArr: any) => {
 	state.ruleForm.hotspotExternal = externalArr?.join(',') ?? ''; // 热点分类默认展开项
 	rightActive.value = 'knowledge';
 	knowledgeRef.value.querySearch(state.ruleForm.hotspotName);
-	const item = state.pushTypeOptions.find((item: any) => item.pushTypeCode === '2'); // 交通运输厅
+	const item = state.pushTypeOptions.find((item: any) => item.dicDataValue === '2'); // 交通运输厅
 	if (val?.trunkNum === '12328') {
 		// 选择了交通热点需要推送分类关联上交通
 		// 去重
@@ -604,7 +604,7 @@ const chooseHotSpot = (val: any, node: any, externalArr: any) => {
 		state.ruleForm.orderPushTypes.push(item);
 	} else {
 		// 如果选择其他需要清除
-		state.ruleForm.orderPushTypes = state.ruleForm.orderPushTypes.filter((item: any) => item.pushTypeCode !== '2');
+		state.ruleForm.orderPushTypes = state.ruleForm.orderPushTypes.filter((item: any) => item.dicDataValue !== '2');
 	}
 };
 // 获取事发地址