Browse Source

reactor:491 短信中心:新增查询条件

zhangchong 2 weeks ago
parent
commit
509abda9af
2 changed files with 25 additions and 15 deletions
  1. 13 13
      src/components/OrderDetail/index.vue
  2. 12 2
      src/directive/authDirective.ts

+ 13 - 13
src/components/OrderDetail/index.vue

@@ -43,10 +43,10 @@
 				<div class="collapse-container">
 					<el-form label-width="100px" ref="ruleFormRef">
 						<el-row :gutter="10">
-							<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.transferPhone">
+							<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm?.transferPhone">
 								<el-form-item label="转接来源"> {{ state.ruleForm.transferPhone }} </el-form-item>
 							</el-col>
-							<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm.fromPhone">
+							<el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="6" v-if="state.ruleForm?.fromPhone">
 								<el-form-item label="来电号码">
 									{{ state.ruleForm.fromPhone }}
 									<el-button
@@ -188,7 +188,7 @@
 										type="primary"
 										class="ml8"
 										@click="showRepeatInfo"
-										v-if="state.ruleForm.duplicateIds && state.ruleForm.duplicateIds.length > 0"
+										v-if="state.ruleForm.duplicateIds && state.ruleForm?.duplicateIds.length > 0"
 										>查看重复工单</el-button
 									>
 								</el-form-item>
@@ -668,7 +668,7 @@
 					@click="onCloseCountersignature"
 					:loading="state.loading"
 					v-auth="'business:order:closeCountersignature'"
-					v-show="state.ruleForm?.countersignId && state.ruleForm.status !== 9"
+					v-if="state.ruleForm?.countersignId && state.ruleForm.status !== 9"
 					>结束会签</el-button
 				>
 				<!-- 有流程信息就可以查询明细 -->
@@ -685,7 +685,7 @@
 					type="primary"
 					@click="onSpecialHandle"
 					:loading="state.loading"
-					v-show="state.ruleForm?.workflowId && state.ruleForm.status !== 9"
+					v-if="state.ruleForm?.workflowId && state.ruleForm?.status !== 9"
 					v-auth="'business:order:teti'"
 					>特 提</el-button
 				>
@@ -694,7 +694,7 @@
 					type="primary"
 					@click="onSupervise"
 					:loading="state.loading"
-					v-show="isInRange(state.ruleForm?.status, 100, 200) && state.ruleForm.status !== 9"
+					v-if="isInRange(state.ruleForm?.status, 100, 200) && state.ruleForm?.status !== 9"
 					v-auth="'business:order:supervise:apply'"
 					>督 办</el-button
 				>
@@ -703,7 +703,7 @@
 					type="primary"
 					@click="onUrge"
 					:loading="state.loading"
-					v-show="isInRange(state.ruleForm?.status, 100, 200) && state.ruleForm.status !== 9"
+					v-if="isInRange(state.ruleForm?.status, 100, 200) && state.ruleForm?.status !== 9"
 					v-auth="'business:order:urge:apply'"
 				>
 					催 办</el-button
@@ -714,7 +714,7 @@
 					type="primary"
 					@click="onDelayApply"
 					:loading="state.loading"
-					v-show="isInRange(state.ruleForm?.status, 100, 200) && state.ruleForm?.isCanDelay && state.ruleForm.status !== 9"
+					v-if="isInRange(state.ruleForm?.status, 100, 200) && state.ruleForm?.isCanDelay && state.ruleForm?.status !== 9"
 					v-auth="'business:order:delay'"
 					>延 期</el-button
 				>
@@ -725,7 +725,7 @@
 					@click="onCancelDelay"
 					:loading="state.loading"
 					v-auth="'business:order:cancelDelay'"
-					v-show="state.ruleForm?.isCanCancelDelay && state.ruleForm.status !== 9"
+					v-if="state.ruleForm?.isCanCancelDelay && state.ruleForm?.status !== 9"
 					>取消延期</el-button
 				>
 				<!-- 100-200 表示工单正在办理中 并且应该自己办理 -->
@@ -733,7 +733,7 @@
 					type="primary"
 					@click="onSubmit('工单办理')"
 					:loading="state.loading"
-					v-show="isInRange(state.ruleForm?.status, 100, 200) && state.ruleForm?.canHandle && state.ruleForm.status !== 9"
+					v-if="isInRange(state.ruleForm?.status, 100, 200) && state.ruleForm?.canHandle && state.ruleForm?.status !== 9"
 					v-auth="'business:order:handle'"
 					>办 理</el-button
 				>
@@ -742,7 +742,7 @@
 					type="primary"
 					@click="onSubmit('工单代办')"
 					:loading="state.loading"
-					v-show="state.ruleForm?.canInsteadHandle && state.ruleForm.status !== 9"
+					v-if="state.ruleForm?.canInsteadHandle && state.ruleForm.status !== 9"
 					v-auth="'business:order:handle:instead'"
 					>代 办</el-button
 				>
@@ -756,8 +756,8 @@
 					type="primary"
 					@click="onReturn"
 					:loading="state.loading"
-					v-show="
-						isInRange(state.ruleForm?.status, 100, 200) && state.ruleForm?.canHandle && state.ruleForm?.canPrevious && state.ruleForm.status !== 9
+					v-if="
+						isInRange(state.ruleForm?.status, 100, 200) && state.ruleForm?.canHandle && state.ruleForm?.canPrevious && state.ruleForm?.status !== 9
 					"
 					v-auth="'business:order:return'"
 					>退 回</el-button

+ 12 - 2
src/directive/authDirective.ts

@@ -1,6 +1,7 @@
 import type { App } from 'vue';
 import { useUserInfo } from '@/stores/userInfo';
 import { judgementSameArr } from '@/utils/arrayOperation';
+import { nextTick } from 'vue';
 
 /**
  * 用户权限指令
@@ -13,8 +14,17 @@ export function authDirective(app: App) {
 	app.directive('auth', {
 		mounted(el, binding) {
 			const stores = useUserInfo();
-			if (!stores.userInfos.authBtnList?.some((v: string) => v === binding.value)) el.parentNode.removeChild(el);
-		},
+			nextTick(() => {
+				const hasPermission = stores.userInfos.authBtnList?.some((v: string) => v === binding.value);
+				if (!hasPermission) {
+					// ✅ 更安全的做法,确保父节点存在且包含 el
+					const parent = el.parentNode;
+					if (parent && parent.contains(el)) {
+						parent.removeChild(el);
+					}
+				}
+			}).then();
+		}
 	});
 	// 多个权限验证,满足一个则显示(v-auths="[xxx,xxx]")
 	app.directive('auths', {