|
@@ -72,23 +72,36 @@
|
|
</template>
|
|
</template>
|
|
</div>
|
|
</div>
|
|
<div class="fixed-btn" v-if="isSubmitVisabled">
|
|
<div class="fixed-btn" v-if="isSubmitVisabled">
|
|
- <div v-if="isCallbackActivity">
|
|
|
|
- <van-button round block type="warning" @click="calBackHandle">
|
|
|
|
- 退回
|
|
|
|
- </van-button>
|
|
|
|
|
|
+ <div class="one">
|
|
|
|
+ <div v-if="isObsoleteActivity">
|
|
|
|
+ <van-button round block type="warning" @click="operationHandle('obsolete')">
|
|
|
|
+ 作废
|
|
|
|
+ </van-button>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-if="isCallbackActivity">
|
|
|
|
+ <van-button round block type="success" @click="operationHandle('calback')">
|
|
|
|
+ 退回
|
|
|
|
+ </van-button>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <div>
|
|
|
|
|
|
+ <div class="two">
|
|
<van-button :disabled="isSubmitDisabled" round block type="primary" @click="submitHandle">
|
|
<van-button :disabled="isSubmitDisabled" round block type="primary" @click="submitHandle">
|
|
转件
|
|
转件
|
|
</van-button>
|
|
</van-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="page-cover" v-if="calBackVisiabled">
|
|
|
|
|
|
+ <div class="page-cover" v-if="visiabledType === 'calback'">
|
|
<cal-back @close="calBackCloseHandle" :data="{
|
|
<cal-back @close="calBackCloseHandle" :data="{
|
|
FLOWINSID: flowInstanceId,
|
|
FLOWINSID: flowInstanceId,
|
|
ACTIVITYINSID: activityInstanceId,
|
|
ACTIVITYINSID: activityInstanceId,
|
|
}"/>
|
|
}"/>
|
|
</div>
|
|
</div>
|
|
|
|
+ <div class="page-cover" v-if="visiabledType === 'obsolete'">
|
|
|
|
+ <obsolete @close="calBackCloseHandle" ref="obsoleteRef" :data="{
|
|
|
|
+ FLOWINSID: flowInstanceId,
|
|
|
|
+ ACTIVITYINSID: activityInstanceId,
|
|
|
|
+ }"/>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -99,13 +112,15 @@ import { getSimpleUserMap } from '@/service/user'
|
|
import PubsubService from "@/utils/PubsubService";
|
|
import PubsubService from "@/utils/PubsubService";
|
|
import { formatDate, jsonToFormData } from "@/utils/common";
|
|
import { formatDate, jsonToFormData } from "@/utils/common";
|
|
import { FlowDTO, getNextActivity } from "@/service/flow";
|
|
import { FlowDTO, getNextActivity } from "@/service/flow";
|
|
-import { getTemplateOpinionListByFlowInstanceId, getOpinionListByFlowInstanceId, getBtnHtml } from '@/service/flow';
|
|
|
|
|
|
+import { isFlowVoid, getTemplateOpinionListByFlowInstanceId, getOpinionListByFlowInstanceId, getBtnHtml } from '@/service/flow';
|
|
import calBack from "@/pages/handleCenter/calBack.vue";
|
|
import calBack from "@/pages/handleCenter/calBack.vue";
|
|
|
|
+import obsolete from "@/pages/handleCenter/obsolete.vue";
|
|
|
|
|
|
defineOptions({
|
|
defineOptions({
|
|
name: 'FlowForm'
|
|
name: 'FlowForm'
|
|
})
|
|
})
|
|
const isCallbackActivity = ref<boolean>(false)
|
|
const isCallbackActivity = ref<boolean>(false)
|
|
|
|
+const isObsoleteActivity = ref<boolean>(false)
|
|
const isSubmitVisabled = ref<boolean>(true)
|
|
const isSubmitVisabled = ref<boolean>(true)
|
|
const isSubmitDisabled = ref<boolean>(false)
|
|
const isSubmitDisabled = ref<boolean>(false)
|
|
const userInfo = JSON.parse(localStorage.getItem('_userInfo') as string);
|
|
const userInfo = JSON.parse(localStorage.getItem('_userInfo') as string);
|
|
@@ -123,25 +138,30 @@ const emit = defineEmits<{
|
|
}>()
|
|
}>()
|
|
const route = useRoute();
|
|
const route = useRoute();
|
|
const currentActive = ref<string>('基础信息')
|
|
const currentActive = ref<string>('基础信息')
|
|
-const { flowInstanceId, activityInstanceId, participant, _o, _top, _isCalBack } = route.query as {
|
|
|
|
|
|
+const { flowInstanceId, activityInstanceId, participant, _o, _top, _isCalBack, _isObsolete } = route.query as {
|
|
flowInstanceId: string
|
|
flowInstanceId: string
|
|
activityInstanceId: string
|
|
activityInstanceId: string
|
|
participant: string
|
|
participant: string
|
|
_o: string
|
|
_o: string
|
|
_top: string,
|
|
_top: string,
|
|
_isCalBack: string
|
|
_isCalBack: string
|
|
|
|
+ _isObsolete: string
|
|
}
|
|
}
|
|
if (_o && _o == 'v') {
|
|
if (_o && _o == 'v') {
|
|
isSubmitVisabled.value = false
|
|
isSubmitVisabled.value = false
|
|
}
|
|
}
|
|
-if (_isCalBack && _isCalBack === '1') {
|
|
|
|
- isCallbackActivity.value = true
|
|
|
|
-} else {
|
|
|
|
|
|
+if (!_isCalBack) {
|
|
getBtnHtml(flowInstanceId, activityInstanceId, userInfo.id).then(result => {
|
|
getBtnHtml(flowInstanceId, activityInstanceId, userInfo.id).then(result => {
|
|
if (result && result.indexOf('退回') !== -1) {
|
|
if (result && result.indexOf('退回') !== -1) {
|
|
isCallbackActivity.value = true
|
|
isCallbackActivity.value = true
|
|
}
|
|
}
|
|
|
|
+ if (result && result.indexOf('作废') !== -1) {
|
|
|
|
+ isObsoleteActivity.value = true
|
|
|
|
+ }
|
|
})
|
|
})
|
|
|
|
+} else {
|
|
|
|
+ isCallbackActivity.value = (_isCalBack && _isCalBack === '1') as boolean
|
|
|
|
+ isObsoleteActivity.value = (_isObsolete && _isObsolete === '1') as boolean
|
|
}
|
|
}
|
|
const currentOpinion = ref({
|
|
const currentOpinion = ref({
|
|
id: '',
|
|
id: '',
|
|
@@ -243,16 +263,35 @@ const submitHandle = async (): Promise<any> => {
|
|
return result;
|
|
return result;
|
|
});
|
|
});
|
|
}
|
|
}
|
|
-const calBackVisiabled = ref<boolean>(false)
|
|
|
|
|
|
+const obsoleteRef = ref()
|
|
|
|
+const visiabledType = ref<string>('')
|
|
const calBackCloseHandle = (bool: boolean) => {
|
|
const calBackCloseHandle = (bool: boolean) => {
|
|
- calBackVisiabled.value = false
|
|
|
|
|
|
+ visiabledType.value = ''
|
|
if (bool) {
|
|
if (bool) {
|
|
- router.replace('/handleCenter')
|
|
|
|
|
|
+ router.replace({
|
|
|
|
+ path: '/handleCenter'
|
|
|
|
+ })
|
|
|
|
+ PubsubService.publish('HandleCenterEvent')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-const calBackHandle = () => {
|
|
|
|
- calBackVisiabled.value = true
|
|
|
|
|
|
+const operationHandle = (type: string) => {
|
|
|
|
+ if (type === 'obsolete') {
|
|
|
|
+ isFlowVoid({
|
|
|
|
+ flowInstanceId: flowInstanceId
|
|
|
|
+ }).then((result: any) => {
|
|
|
|
+ if (result === 'ok') {
|
|
|
|
+ visiabledType.value = type
|
|
|
|
+ const timer = setTimeout(() => {
|
|
|
|
+ obsoleteRef.value.initObsolete()
|
|
|
|
+ clearTimeout(timer)
|
|
|
|
+ }, 500)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ visiabledType.value = type
|
|
}
|
|
}
|
|
|
|
+
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
<style scoped lang="scss">
|
|
@@ -268,11 +307,18 @@ const calBackHandle = () => {
|
|
}
|
|
}
|
|
>.fixed-btn {
|
|
>.fixed-btn {
|
|
padding: 10px 10px;
|
|
padding: 10px 10px;
|
|
- display: flex;
|
|
|
|
- flex-direction: row;
|
|
|
|
- >div {
|
|
|
|
- flex: 1;
|
|
|
|
|
|
+ >.one {
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-direction: row;
|
|
|
|
+ >div {
|
|
|
|
+ display: inline-block;
|
|
|
|
+ flex: 1;
|
|
|
|
+ margin: 0px 5px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ >.two {
|
|
margin: 0px 5px;
|
|
margin: 0px 5px;
|
|
|
|
+ margin-top: 10px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.flowOpinionBox {
|
|
.flowOpinionBox {
|