|
@@ -161,6 +161,39 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
+ <el-form :model="state.terminateForm" label-width="110px" ref="terminateFormRef" v-if="state.processType === '终止申请'">
|
|
|
+ <el-row :gutter="10">
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
+ <el-form-item label="工单编码"> {{ state.orderDetail.no }} </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
+ <el-form-item label="工单标题"> {{ state.orderDetail.title }} </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
+ <el-form-item label="终止理由" prop="content" :rules="[{ required: true, message: '请填写终止申请理由', trigger: 'blur' }]">
|
|
|
+ <common-advice
|
|
|
+ @chooseAdvice="chooseAdviceTerminate"
|
|
|
+ v-model="state.terminateForm.content"
|
|
|
+ placeholder="请填写终止申请理由"
|
|
|
+ :loading="state.loading"
|
|
|
+ :commonEnum="commonOpinionType"
|
|
|
+ :maxlength="2000"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
+ <el-form-item label="附件">
|
|
|
+ <annex-list
|
|
|
+ name="终止附件"
|
|
|
+ ref="terminateAnnexListRef"
|
|
|
+ v-model:format="handleFilesTerminate"
|
|
|
+ :businessId="state.orderDetail.id"
|
|
|
+ classify="终止上传"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
</div>
|
|
|
<el-form :model="state.ruleForm" label-width="110px" ref="ruleFormRef" v-show="activeStep === 1" v-loading="state.loading">
|
|
|
<slot name="header"></slot>
|
|
@@ -338,22 +371,6 @@
|
|
|
</el-row>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
- <el-form-item label="工单期满时间">
|
|
|
- {{ state.ruleForm.endTime }}
|
|
|
- </el-form-item>
|
|
|
- </el-col>-->
|
|
|
- <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="handelArr.includes(state.processType)">
|
|
|
- <el-form-item label="节点期满时间" prop="expiredTime" :rules="[{ required: true, message: '请选择节点期满时间', trigger: 'change' }]">
|
|
|
- <el-date-picker
|
|
|
- v-model="state.ruleForm.expiredTime"
|
|
|
- type="datetime"
|
|
|
- placeholder="请选择节点期满时间"
|
|
|
- value-format="YYYY-MM-DD[T]HH:mm:ss"
|
|
|
- class="w100"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>-->
|
|
|
</template>
|
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" v-if="countersignAble">
|
|
|
<el-form-item label="发起会签" prop="isStartCountersign" :rules="[{ required: false, message: '请选择发起会签', trigger: 'change' }]">
|
|
@@ -414,7 +431,7 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</template>
|
|
|
- <template v-if="!['延期申请', '甄别申请'].includes(state.processType)">
|
|
|
+ <template v-if="!['延期申请', '甄别申请','终止申请'].includes(state.processType)">
|
|
|
<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
<el-form-item
|
|
|
:label="state.inputPlaceholder"
|
|
@@ -595,39 +612,6 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
- <el-form :model="state.terminateForm" label-width="110px" ref="terminateFormRef" v-if="state.processType === '终止申请'">
|
|
|
- <el-row :gutter="10">
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
- <el-form-item label="工单编码"> {{ state.orderDetail.no }} </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
- <el-form-item label="工单标题"> {{ state.orderDetail.title }} </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
- <el-form-item label="终止理由" prop="content" :rules="[{ required: true, message: '请填写终止申请理由', trigger: 'blur' }]">
|
|
|
- <common-advice
|
|
|
- @chooseAdvice="chooseAdviceTerminate"
|
|
|
- v-model="state.terminateForm.content"
|
|
|
- placeholder="请填写终止申请理由"
|
|
|
- :loading="state.loading"
|
|
|
- :commonEnum="commonOpinionType"
|
|
|
- :maxlength="2000"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
- <el-form-item label="附件">
|
|
|
- <annex-list
|
|
|
- name="终止附件"
|
|
|
- ref="terminateAnnexListRef"
|
|
|
- v-model:format="handleFilesTerminate"
|
|
|
- :businessId="state.orderDetail.id"
|
|
|
- classify="终止上传"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </el-form>
|
|
|
</div>
|
|
|
<el-form :model="state.ruleForm" label-width="110px" ref="ruleFormRef" v-show="activeStep === 1" v-loading="state.loading">
|
|
|
<slot name="header"></slot>
|
|
@@ -1283,6 +1267,9 @@ const fastStepName = ref(''); // 推荐派单处理对象
|
|
|
const isOverdueTips = computed(() => {
|
|
|
return state.orderDetail.expiredStatus === 2 && state.ruleForm.nextStepCode === 'end';
|
|
|
});
|
|
|
+// 办理对象是否必填 0-角色 1-部门类型 2-部门类型 3-指定用户 4-指定部门
|
|
|
+// 2024/10/28 新增甄别申请 延期申请 终止申请选择办理对象非必填 !showStepsArr.includes(state.processType)
|
|
|
+const nextHandlersRequired = ref<Boolean>(false);
|
|
|
const selectNextStep = (val: any) => {
|
|
|
ruleFormRef.value?.resetFields('nextHandlers');
|
|
|
ruleFormRef.value?.resetFields('nextMainHandler');
|
|
@@ -1304,6 +1291,8 @@ const selectNextStep = (val: any) => {
|
|
|
});
|
|
|
fastStepName.value = next.recommendOrgName; // 推荐派单处理对象
|
|
|
fastStepCode.value = next.recommendOrgId; // 推荐派单处理对象code
|
|
|
+ // 办理对象是否必填
|
|
|
+ nextHandlersRequired.value = ![0].includes(next.handlerType) && !showStepsArr.includes(state.processType);
|
|
|
if (items.length === 1) {
|
|
|
// 如果办理对象只有一个默认选中
|
|
|
state.ruleForm.nextHandlers = [items[0]];
|
|
@@ -1339,10 +1328,9 @@ const changeStartCountersign = (val: boolean) => {
|
|
|
// 是否展示办理对象 (结束节点不展示: next.stepType===2 表示为结束节点,下一环节为派单组时 next.businessType === 1,办理对象下拉框隐藏:AppConfigInfo.value.isAverageSendOrder= true 表示开启了平均派单 )
|
|
|
const showHandlers = computed(() => {
|
|
|
const next = state.nextStepOptions.find((item: any) => item.key === state.ruleForm.nextStepCode);
|
|
|
- const isAverageSendOrder = AppConfigInfo.value.isAverageSendOrder && next?.businessType === 1; // 开启平均派单并且下一个环节是派单组
|
|
|
- // 2024/10/28 新增甄别申请 延期申请 终止申请选择办理对象非必填
|
|
|
+ const isAverageSendOrder = AppConfigInfo.value.isAverageSendOrder && next?.businessType === 1; // 开启平均派单并且下一个环节是派单组 !isAverageSendOrder
|
|
|
if (!next) return true;
|
|
|
- return next?.stepType !== 2 && !isAverageSendOrder && !showStepsArr.includes(state.processType);
|
|
|
+ return next?.stepType !== 2;
|
|
|
});
|
|
|
// 是否展示部门处理结果 ( 选择结束节点时并且当前操作人不是中心时,显示部门处理结果 )
|
|
|
const showResult = computed(() => {
|
|
@@ -1441,17 +1429,6 @@ const selectHandlers = () => {
|
|
|
state.ruleForm.isStartCountersign = false;
|
|
|
}
|
|
|
};
|
|
|
-// 办理对象是否必填
|
|
|
-const nextHandlersRequired = ref<Boolean>(false);
|
|
|
-watch(
|
|
|
- () => state.ruleForm.nextStepCode,
|
|
|
- (val) => {
|
|
|
- const next = state.nextStepOptions.find((item: any) => item.key === val);
|
|
|
- if (!next) return true;
|
|
|
- nextHandlersRequired.value = ![0].includes(next.handlerType);
|
|
|
- }
|
|
|
-);
|
|
|
-
|
|
|
// 是否展示主办
|
|
|
const showMainHandler = computed(() => {
|
|
|
return state.ruleForm.nextHandlers.length > 1 && isMainHandlerShow.value;
|