Selaa lähdekoodia

reactor:常用意见分类优化;

zhangchong 8 kuukautta sitten
vanhempi
commit
77ff834c17

+ 26 - 5
src/components/ProcessAudit/index.vue

@@ -90,7 +90,7 @@
 								v-model="state.delayForm.content"
 								placeholder="请填写延期申请理由"
 								:loading="state.loading"
-								:commonEnum="commonEnum.Delay"
+								:commonEnum="commonOpinionType"
 							/>
 						</el-form-item>
 					</el-col>
@@ -132,7 +132,7 @@
 								v-model="state.discernForm.content"
 								placeholder="请填写甄别申请理由"
 								:loading="state.loading"
-								:commonEnum="commonEnum.Discriminate"
+								:commonEnum="commonOpinionType"
 							/>
 						</el-form-item>
 					</el-col>
@@ -235,7 +235,7 @@
 								v-model="state.ruleForm.opinion"
 								:placeholder="'请填写' + state.inputPlaceholder"
 								:loading="state.loading"
-								:commonEnum="commonEnum.OrderCirculation"
+								:commonEnum="commonOpinionType"
 							/>
 						</el-form-item>
 					</el-col>
@@ -414,7 +414,7 @@
 									v-model="state.ruleForm.opinion"
 									:placeholder="'请填写' + state.inputPlaceholder"
 									:loading="state.loading"
-									:commonEnum="commonEnum.OrderCirculation"
+									:commonEnum="commonOpinionType"
 								/>
 							</el-form-item>
 						</el-col>
@@ -461,7 +461,7 @@
 
 <script setup lang="ts" name="processApproval">
 import { computed, defineAsyncComponent, nextTick, reactive, ref, watch, watchEffect } from 'vue';
-import { ElMessage, ElMessageBox, FormInstance } from 'element-plus';
+import { ElMessage, FormInstance } from 'element-plus';
 import other from '@/utils/other';
 import { useUserInfo } from '@/stores/userInfo';
 import { storeToRefs } from 'pinia';
@@ -642,6 +642,27 @@ const openDialog = async (val: any) => {
 const isOrderAccept = computed(() => {
 	return state.processType === '工单受理';
 });
+// 常用意见类型
+const commonOpinionType = computed(() => {
+	switch (state.processType) {
+		case '工单受理':
+			return commonEnum.Seat;
+		case '工单退回':
+			return commonEnum.Return;
+		case '工单办理':
+			return commonEnum.OrderCirculation;
+		case '甄别审批':
+		case '甄别申请':
+			return commonEnum.Discriminate;
+		case '延期审批':
+		case '延期申请':
+			return commonEnum.Delay;
+		case '知识审批':
+			return commonEnum.KnowledgeL;
+		default:
+			return commonEnum.OrderCirculation;
+	}
+});
 const canReject = ref<boolean>(false); // 是否可以驳回
 const timeTypeOptions = ref<EmptyArrayType>([]); // 办理时限单位
 const canStartCountersign = ref<boolean>(false); // 是否可以发起会签

+ 1 - 1
src/views/business/order/components/Order-supply.vue

@@ -111,7 +111,7 @@ const close = ()=>{
 }
 // 选中常用意见
 const chooseAdvice = (item: any) => {
-	state.ruleForm.content += item.content;
+	state.ruleForm.opinion += item.content;
 };
 // 设置抽屉
 const dialogRef = ref<RefType>();

+ 24 - 3
src/views/business/special/components/Special-apply-order.vue

@@ -1,6 +1,8 @@
 <template>
 	<!-- 工单详情发起特提 -->
-	<el-dialog v-model="state.dialogVisible" draggable title="特提申请" width="50%" append-to-body destroy-on-close @close="close">
+	<el-dialog v-model="state.dialogVisible" draggable title="特提申请" width="50%" append-to-body destroy-on-close @close="close" 	@mouseup="mouseup"
+						 :style="'transform: ' + state.transform + ';'"
+						 ref="dialogRef">
 		<div class="collapse-container">
 			<el-form label-width="110px" ref="ruleFormRef" :model="state.ruleForm">
 				<el-row :gutter="35">
@@ -72,7 +74,13 @@
 					</el-col>-->
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 						<el-form-item label="特提理由" prop="reason" :rules="[{ required: true, message: '请填写特提理由', trigger: 'blur' }]">
-							<el-input v-model="state.ruleForm.reason" type="textarea" :autosize="{ minRows: 6, maxRows: 10 }" placeholder="请填写特提理由" />
+							<common-advice
+								@chooseAdvice="chooseAdvice"
+								v-model="state.ruleForm.reason"
+								placeholder="请填写特提理由"
+								:loading="state.loading"
+								:commonEnum="commonEnum.Teti"
+							/>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
@@ -98,9 +106,11 @@ import { specialApplyBase, specialApply } from '@/api/business/special';
 import { orderTimeConfig } from '@/api/business/order';
 import { storeToRefs } from 'pinia';
 import { useUserInfo } from '@/stores/userInfo';
+import { commonEnum } from '@/utils/constants';
 
 // 引入组件
 const AnnexList = defineAsyncComponent(() => import('@/components/AnnexList/index.vue'));
+const CommonAdvice = defineAsyncComponent(() => import('@/components/CommonAdvice/index.vue')); // 常用意见
 
 // 定义子组件向父组件传值/事件
 const emit = defineEmits(['updateList']);
@@ -113,10 +123,12 @@ const state = reactive<any>({
 		timeLimitUnit: 2, // 期满时间单位
 		alterTime: true, // 是否修改期满时间
 		nextHandlers: [], // 办理对象
-    stepType:null
+    stepType:null,
+		reason:'',
 	},
 	orderDetail: {}, // 工单详情
 	workflowId: null, // 工作流id
+	transform: 'translate(0px, 0px)', // 滚动条位置
 });
 const ruleFormRef = ref<RefType>();
 const specialReason = ref<EmptyArrayType>([]); // 特提理由
@@ -157,6 +169,15 @@ const close = () => {
 	steps.value = [];
 	stepsItems.value = [];
 };
+// 选中常用意见
+const chooseAdvice = (item: any) => {
+	state.ruleForm.reason += item.content;
+};
+// 设置抽屉
+const dialogRef = ref<RefType>();
+const mouseup = () => {
+	state.transform = dialogRef.value.dialogContentRef.$el.style.transform;
+};
 // 选择节点确定处理对象
 const stores = useUserInfo();
 const { userInfos } = storeToRefs(stores);

+ 32 - 2
src/views/business/special/components/Special-apply.vue

@@ -1,6 +1,17 @@
 <template>
 	<!-- 特提列表发起特提 -->
-	<el-dialog v-model="state.dialogVisible" draggable title="特提申请" width="50%" append-to-body destroy-on-close @close="close">
+	<el-dialog
+		v-model="state.dialogVisible"
+		draggable
+		title="特提申请"
+		width="50%"
+		append-to-body
+		destroy-on-close
+		@close="close"
+		@mouseup="mouseup"
+		:style="'transform: ' + state.transform + ';'"
+		ref="dialogRef"
+	>
 		<div class="collapse-container">
 			<el-form label-width="110px" ref="ruleFormRef" :model="state.ruleForm">
 				<el-row :gutter="35">
@@ -52,6 +63,13 @@
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
 						<el-form-item label="特提理由" prop="reason" :rules="[{ required: true, message: '请填写特提理由', trigger: 'blur' }]">
 							<el-input v-model="state.ruleForm.reason" type="textarea" :autosize="{ minRows: 6, maxRows: 10 }" placeholder="请填写特提理由" />
+							<common-advice
+								@chooseAdvice="chooseAdvice"
+								v-model="state.ruleForm.reason"
+								placeholder="请填写特提理由"
+								:loading="state.loading"
+								:commonEnum="commonEnum.Teti"
+							/>
 						</el-form-item>
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
@@ -77,9 +95,11 @@ import { storeToRefs } from 'pinia';
 import { useUserInfo } from '@/stores/userInfo';
 import { formatDate } from '@/utils/formatTime';
 import { specialApplyBase, specialApply } from '@/api/business/special';
+import { commonEnum } from '@/utils/constants';
 
 // 引入组件
 const AnnexList = defineAsyncComponent(() => import('@/components/AnnexList/index.vue'));
+const CommonAdvice = defineAsyncComponent(() => import('@/components/CommonAdvice/index.vue')); // 常用意见
 
 // 定义子组件向父组件传值/事件
 const emit = defineEmits(['updateList']);
@@ -90,11 +110,12 @@ const state = reactive<any>({
 	ruleForm: {
 		nextStepCode: null, // 特提节点
 		cause: null, // 特提原因
-		reason: null, // 特提理由
+		reason: '', // 特提理由
 		nextHandlers: [], // 处理对象
 	},
 	orderDetail: {}, // 工单详情
 	workflowId: null, // 工作流id
+	transform: 'translate(0px, 0px)', // 滚动条位置
 });
 const ruleFormRef = ref<RefType>();
 const storesUserInfo = useUserInfo();
@@ -131,6 +152,15 @@ const close = () => {
 	steps.value = [];
 	stepsItems.value = [];
 };
+// 选中常用意见
+const chooseAdvice = (item: any) => {
+	state.ruleForm.reason += item.content;
+};
+// 设置抽屉
+const dialogRef = ref<RefType>();
+const mouseup = () => {
+	state.transform = dialogRef.value.dialogContentRef.$el.style.transform;
+};
 // 选择节点确定办理对象
 const selectTrace = (val: any) => {
 	const step = steps.value.find((item) => item.key === val);

+ 1 - 1
src/views/business/supervise/components/Order-supervise.vue

@@ -146,7 +146,7 @@ const close = () => {
 };
 // 选中常用意见
 const chooseAdvice = (item: any) => {
-	state.ruleForm.content += item.content;
+	state.ruleForm.applyContent += item.content;
 };
 // 设置抽屉
 const dialogRef = ref<RefType>();

+ 1 - 1
src/views/business/urge/components/Order-urge.vue

@@ -135,7 +135,7 @@ const close = () => {
 };
 // 选中常用意见
 const chooseAdvice = (item: any) => {
-	state.ruleForm.content += item.content;
+	state.ruleForm.applyContent += item.content;
 };
 // 设置抽屉
 const dialogRef = ref<RefType>();

+ 3 - 3
src/views/business/visit/component/Visit-detail.vue

@@ -271,7 +271,7 @@
 														v-model="item.visitContent"
 														placeholder="请填写话务员回访内容"
 														:loading="state.loading"
-														:commonEnum="commonEnum.Seat"
+														:commonEnum="commonEnum.ReturnVisit"
 														:minRows="5"
 														:maxRows="10"
 														drawerWidth="40%"
@@ -319,7 +319,7 @@
 														v-model="item.volveConent"
 														placeholder="请填写备注"
 														:loading="state.loading"
-														:commonEnum="commonEnum.Seat"
+														:commonEnum="commonEnum.ReturnVisit"
 														:minRows="5"
 														:maxRows="10"
 														drawerWidth="40%"
@@ -403,7 +403,7 @@
 														d
 														placeholder="请填写部门回访内容"
 														:loading="state.loading"
-														:commonEnum="commonEnum.Seat"
+														:commonEnum="commonEnum.ReturnVisit"
 														:minRows="5"
 														:maxRows="10"
 														drawerWidth="40%"