|
|
|
@ -88,7 +88,7 @@
|
|
|
|
|
</div>
|
|
|
|
|
</a-form>
|
|
|
|
|
</a-spin>
|
|
|
|
|
<template #footer>
|
|
|
|
|
<template #footer>
|
|
|
|
|
<a-button @click="handleCancel">
|
|
|
|
|
关闭
|
|
|
|
|
</a-button>
|
|
|
|
@ -110,15 +110,14 @@
|
|
|
|
|
<div>
|
|
|
|
|
<span>服务项目:</span>
|
|
|
|
|
<a-select show-search placeholder="请选择服务项目" v-model:value="serviceItem"
|
|
|
|
|
style="width: 300px;margin-right: 20px;" @search="projectSearch" :default-active-first-option="false"
|
|
|
|
|
:show-arrow="false" :filter-option="false" :not-found-content="null">
|
|
|
|
|
style="width: 300px;margin-right: 20px;" @search="projectSearch">
|
|
|
|
|
<a-select-option v-for="item in projectList" :key="item.pkId" :value="item.pkId">
|
|
|
|
|
{{ item.serviceProjectName }}
|
|
|
|
|
</a-select-option>
|
|
|
|
|
</a-select>
|
|
|
|
|
<a @click="handleInto">引入</a>
|
|
|
|
|
</div>
|
|
|
|
|
<template #footer>
|
|
|
|
|
<template #footer>
|
|
|
|
|
<a-button @click="addItemFlag = false">
|
|
|
|
|
关闭
|
|
|
|
|
</a-button>
|
|
|
|
@ -130,9 +129,7 @@
|
|
|
|
|
:model="activeForm">
|
|
|
|
|
<a-form-item name="pkId" style="margin-bottom: 10px;" label="流程活动">
|
|
|
|
|
<a-select show-search placeholder="请选择流程活动" v-model:value="activeForm.pkId"
|
|
|
|
|
style="width: 300px;margin-right: 20px;" @search="activeSearch"
|
|
|
|
|
:default-active-first-option="false" :show-arrow="false" :filter-option="false"
|
|
|
|
|
:not-found-content="null">
|
|
|
|
|
style="width: 300px;margin-right: 20px;" @search="activeSearch">
|
|
|
|
|
<a-select-option v-for="item in activeList" :key="item.pkId" :value="item.pkId">
|
|
|
|
|
{{ item.showName }}
|
|
|
|
|
</a-select-option>
|
|
|
|
@ -167,7 +164,7 @@
|
|
|
|
|
</div>
|
|
|
|
|
</a-form>
|
|
|
|
|
</div>
|
|
|
|
|
<template #footer>
|
|
|
|
|
<template #footer>
|
|
|
|
|
<a-button type="primary" @click="handleSaveActive">
|
|
|
|
|
确定
|
|
|
|
|
</a-button>
|
|
|
|
@ -178,13 +175,11 @@
|
|
|
|
|
</a-modal>
|
|
|
|
|
<a-modal title="服务活动新增" :width="800" :visible="addActiveFlag" @cancel="addActiveFlag = false">
|
|
|
|
|
<div>
|
|
|
|
|
<a-form ref="addActiveForm" :rules="addRules" :labelCol="{ span: 3 }" :wrapperCol="{ span: 21 }"
|
|
|
|
|
<a-form ref="addActiveFormRef" :rules="addRules" :labelCol="{ span: 3 }" :wrapperCol="{ span: 21 }"
|
|
|
|
|
:model="addActiveForm">
|
|
|
|
|
<a-form-item name="statusSKUId" style="margin-bottom: 10px;" label="状态名称">
|
|
|
|
|
<a-select show-search placeholder="请选择状态名称" v-model:value="addActiveForm.statusSKUId"
|
|
|
|
|
style="width: 300px;margin-right: 20px;" @search="statusSearch" @change="handleChangeStatus"
|
|
|
|
|
:default-active-first-option="false" :show-arrow="false" :filter-option="false"
|
|
|
|
|
:not-found-content="null">
|
|
|
|
|
style="width: 300px;margin-right: 20px;" @search="statusSearch" @change="handleChangeStatus">
|
|
|
|
|
<a-select-option v-for="item in statusList" :key="item.pkId" :value="item.pkId">
|
|
|
|
|
{{ item.statusSKUName }}
|
|
|
|
|
</a-select-option>
|
|
|
|
@ -198,7 +193,7 @@
|
|
|
|
|
</a-form-item>
|
|
|
|
|
</a-form>
|
|
|
|
|
</div>
|
|
|
|
|
<template #footer>
|
|
|
|
|
<template #footer>
|
|
|
|
|
<a-button type="primary" @click="handleSaveAddActive">
|
|
|
|
|
确定
|
|
|
|
|
</a-button>
|
|
|
|
@ -208,33 +203,34 @@
|
|
|
|
|
</template>
|
|
|
|
|
</a-modal>
|
|
|
|
|
<a-modal title="流程展示" :width="1400" :visible="timeFlag" @cancel="timeFlag = false">
|
|
|
|
|
<a-spin :spinning="timeLoading">
|
|
|
|
|
<div v-if="timeForm.activitiesList && timeForm.activitiesList.length > 0" class="time">
|
|
|
|
|
<div class="time-title">{{ timeForm.serviceProjectName }}</div>
|
|
|
|
|
<div class="item" v-for="(item, index) in timeForm.activitiesList" :key="item.actId">
|
|
|
|
|
<div class="top">
|
|
|
|
|
<div class="line" :class="{ active: item.isYield == 1 }"></div>
|
|
|
|
|
<div class="point" :class="{ active: item.isYield == 1 }"></div>
|
|
|
|
|
<div class="line" v-if="index != timeForm.activitiesList.length - 1" :class="{ active: item.isYield == 1 }">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="bottom">
|
|
|
|
|
<div :title="item.showName + item.actDate">{{ item.showName }}</div>
|
|
|
|
|
<div v-if="item.isYield == 1">{{ item.actDate ? item.actDate.substring(0, 11) : '' }}</div>
|
|
|
|
|
<div class="subList">
|
|
|
|
|
<div class="sub" v-for="ite in item.subList" :key="ite.actId">
|
|
|
|
|
<div :class="{ active: ite.isYield == 1 }" class="subPoint"></div>
|
|
|
|
|
<div :title="ite.showName + ite.actDate" class="text">
|
|
|
|
|
<span style="margin-right: 4px;">{{ ite.showName }}</span>
|
|
|
|
|
<span>{{ ite.actDate ? ite.actDate.substring(0, 11) : '' }}</span>
|
|
|
|
|
</div>
|
|
|
|
|
<a-spin :spinning="timeLoading">
|
|
|
|
|
<div v-if="timeForm.activitiesList && timeForm.activitiesList.length > 0" class="time">
|
|
|
|
|
<div class="time-title">{{ timeForm.serviceProjectName }}</div>
|
|
|
|
|
<div class="item" v-for="(item, index) in timeForm.activitiesList" :key="item.actId">
|
|
|
|
|
<div class="top">
|
|
|
|
|
<div class="line" :class="{ active: item.isYield == 1 }"></div>
|
|
|
|
|
<div class="point" :class="{ active: item.isYield == 1 }"></div>
|
|
|
|
|
<div class="line" v-if="index != timeForm.activitiesList.length - 1"
|
|
|
|
|
:class="{ active: item.isYield == 1 }">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="bottom">
|
|
|
|
|
<div :title="item.showName + item.actDate">{{ item.showName }}</div>
|
|
|
|
|
<div v-if="item.isYield == 1">{{ item.actDate ? item.actDate.substring(0, 11) : '' }}</div>
|
|
|
|
|
<div class="subList">
|
|
|
|
|
<div class="sub" v-for="ite in item.subList" :key="ite.actId">
|
|
|
|
|
<div :class="{ active: ite.isYield == 1 }" class="subPoint"></div>
|
|
|
|
|
<div :title="ite.showName + ite.actDate" class="text">
|
|
|
|
|
<span style="margin-right: 4px;">{{ ite.showName }}</span>
|
|
|
|
|
<span>{{ ite.actDate ? ite.actDate.substring(0, 11) : '' }}</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-else>暂无数据</div>
|
|
|
|
|
</a-spin>
|
|
|
|
|
<div v-else>暂无数据</div>
|
|
|
|
|
</a-spin>
|
|
|
|
|
</a-modal>
|
|
|
|
|
|
|
|
|
|
</template>
|
|
|
|
@ -242,7 +238,7 @@
|
|
|
|
|
import { ref, onMounted } from 'vue'
|
|
|
|
|
import {
|
|
|
|
|
projectQueryList, QueryActivitiesList, QueryListStatus, workFlowSetUnPublishRelease,
|
|
|
|
|
workFlowSetUnEnable, workFlowSaveAndEnable,GetShowTimeLine
|
|
|
|
|
workFlowSetUnEnable, workFlowSaveAndEnable, GetShowTimeLine,SaveWFActivities
|
|
|
|
|
} from './api'
|
|
|
|
|
import { useMessage } from '/@/hooks/web/useMessage'
|
|
|
|
|
const { createMessage } = useMessage()
|
|
|
|
@ -252,7 +248,7 @@ const addActiveForm = ref({}) as any
|
|
|
|
|
const formRef = ref()
|
|
|
|
|
const form = ref({
|
|
|
|
|
serviceProject: {},
|
|
|
|
|
statusSkuList:[]
|
|
|
|
|
statusSkuList: []
|
|
|
|
|
}) as any
|
|
|
|
|
const labelCol = {
|
|
|
|
|
xs: { span: 24 },
|
|
|
|
@ -262,6 +258,7 @@ const wrapperCol = {
|
|
|
|
|
xs: { span: 24 },
|
|
|
|
|
sm: { span: 17 }
|
|
|
|
|
}
|
|
|
|
|
const addActiveFormRef = ref('') as any
|
|
|
|
|
const statusList = ref([]) as any
|
|
|
|
|
const addItemFlag = ref(false)
|
|
|
|
|
const formRule = {
|
|
|
|
@ -286,7 +283,7 @@ const addActiveFlag = ref(false)
|
|
|
|
|
const activeList = ref([]) as any
|
|
|
|
|
function activeSearch(data) {
|
|
|
|
|
QueryActivitiesList({ queryItem: data }).then(res => {
|
|
|
|
|
activeList.value = res.data.ext
|
|
|
|
|
activeList.value = res.data
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const SysTenantData = ref([]) as any
|
|
|
|
@ -331,6 +328,20 @@ function handlePub() {
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
function handleSaveAddActive() {
|
|
|
|
|
addActiveFormRef.value.validate().then(() => {
|
|
|
|
|
SaveWFActivities(addActiveForm.value).then(res => {
|
|
|
|
|
if (res.data.succ) {
|
|
|
|
|
createMessage.success('添加成功')
|
|
|
|
|
addActiveFlag.value = false
|
|
|
|
|
QueryActivitiesList().then(res => {
|
|
|
|
|
activeList.value = res.data.ext
|
|
|
|
|
})
|
|
|
|
|
// this.$refs.addActiveForm.resetFields()
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
function handleUnable() {
|
|
|
|
|
workFlowSetUnEnable([form.value.pkId]).then(res => {
|
|
|
|
|
if (res.data.ext[0].succ) {
|
|
|
|
@ -377,16 +388,18 @@ function handleInto() {
|
|
|
|
|
const projectList = ref([]) as any
|
|
|
|
|
onMounted(() => {
|
|
|
|
|
projectSearch('')
|
|
|
|
|
statusSearch('')
|
|
|
|
|
activeSearch('')
|
|
|
|
|
})
|
|
|
|
|
function projectSearch(data) {
|
|
|
|
|
projectQueryList({ queryItem: data }).then(res => {
|
|
|
|
|
projectList.value = res.data.ext
|
|
|
|
|
projectList.value = res.data
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function statusSearch(data) {
|
|
|
|
|
QueryListStatus({ queryItem: data }).then(res => {
|
|
|
|
|
statusList.value = res.data.ext
|
|
|
|
|
statusList.value = res.data
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -437,17 +450,17 @@ const timeFlag = ref(false)
|
|
|
|
|
const timeLoading = ref(false)
|
|
|
|
|
const timeForm = ref({}) as any
|
|
|
|
|
function handleTime() {
|
|
|
|
|
timeFlag.value = true
|
|
|
|
|
timeLoading.value = true
|
|
|
|
|
GetShowTimeLine({ pkId: form.value.pkId }).then(res => {
|
|
|
|
|
timeFlag.value = true
|
|
|
|
|
timeLoading.value = true
|
|
|
|
|
GetShowTimeLine({ pkId: form.value.pkId }).then(res => {
|
|
|
|
|
if (res.data.succ) {
|
|
|
|
|
timeForm.value = res.data.ext
|
|
|
|
|
timeForm.value = res.data.ext
|
|
|
|
|
} else {
|
|
|
|
|
createMessage.error(res.data.msg)
|
|
|
|
|
}
|
|
|
|
|
timeLoading.value = false
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
defineExpose({ init })
|
|
|
|
|
function handleCancel() {
|
|
|
|
|
visible.value = false
|
|
|
|
|