| | |
| | | </div> |
| | | <div class="process-list" v-if="flowList && flowList.length>0"> |
| | | <div class="process-item" v-for="process in flowList" :key="process.id"> |
| | | <div class="process-info"> |
| | | <span class="process-name">{{process.title}}</span> |
| | | <span class="process-status" :class="{processing: process.type == 1,pending: process.type == 2,success: process.type == 3,normal: process.type == 4}"> |
| | | {{process.type == 1? '内审实施计划':process.type == 2? '培训计划':process.type == 3? '项目评审':'年度检定计划'}} |
| | | <div class="process-info" @click="openDetail(process)"> |
| | | <span class="process-status" :class="{processing: process.type == 1,pending: process.type == 2,success: process.type == 3,normal: process.type == 4,seal: process.type == 5}"> |
| | | {{process.type == 1? '内审实施计划':process.type == 2? '培训计划':process.type == 3? '项目评审':process.type == 4?'年度检定计划':process.type == 5?'用章审批(申请)': '用章审批(待审批)'}} |
| | | </span> |
| | | <span class="process-name">{{process.title}}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <user-dialog ref="reviewRef"></user-dialog> |
| | | <edit-dialog ref="dialogRef" @getList=getPlatformList></edit-dialog> |
| | | <sealDialog ref="noticeRef"></sealDialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import useUserStore from '@/store/modules/user' |
| | | import userDialog from '@/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue' |
| | | import editDialog from '@/views/build/conpanyFunctionConsult/infoPlatform/components/editDialog.vue' |
| | | import sealDialog from "@/views/work/sealManagement/apply/components/editDialog" |
| | | import menu1 from '@/assets/icons/menu1.png' |
| | | import menu2 from '@/assets/icons/menu2.png' |
| | | import menu3 from '@/assets/icons/menu3.png' |
| | |
| | | import {renderAsync} from "docx-preview"; |
| | | import {getInfoPlatforms} from "@/api/staffManage/staff"; |
| | | import {getCompany} from "@/api/onlineEducation/company"; |
| | | import {getSealApply} from "@/api/sealManage/apply"; |
| | | |
| | | const router = useRouter() |
| | | const route = useRoute(); |
| | |
| | | const newMemo = ref('') |
| | | const calendarRef = ref() |
| | | const dialogRef = ref() |
| | | const noticeRef = ref(); |
| | | const userStore = useUserStore() |
| | | const state = reactive({ |
| | | noticeParams: { |
| | |
| | | }) |
| | | }) |
| | | |
| | | const getSealDetail = async (type,sealId) => { |
| | | let param = {} |
| | | if(type == 5){ |
| | | param = { |
| | | pageNum: 1, |
| | | pageSize: 999, |
| | | companyId: state.noticeParams.companyId, |
| | | applyUserId: userStore.id |
| | | } |
| | | }else{ |
| | | param = { |
| | | pageNum: 1, |
| | | pageSize: 999, |
| | | companyId: state.noticeParams.companyId, |
| | | nextCheck: userStore.id |
| | | } |
| | | } |
| | | const res = await getSealApply(param); |
| | | if(res.code === 200){ |
| | | return res.data.list.find(i=>i.id == sealId) |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | | } |
| | | |
| | | const toNoticeMng = ()=>{ |
| | | router.push({ path: "/work/noticeMng" }); |
| | | } |
| | | |
| | | const openDetail = async (value) => { |
| | | if(value.type == '5' || value.type == '6'){ |
| | | const data = await getSealDetail(Number(value.type),Number(value.dataId)) |
| | | noticeRef.value.openDialog('review', data,state.companyList) |
| | | } |
| | | } |
| | | function getNoticeList() { |
| | | listNotice(state.noticeParams).then(res => { |
| | | state.noticeList = res.data.list |
| | |
| | | const getFlowList = async () => { |
| | | const res = await getIndexTitle({pageNum: 1,pageSize: 99}) |
| | | if(res.code == 200){ |
| | | state.flowList = Array.isArray(res.data) ? res.data : [] |
| | | state.flowList = Array.isArray(res.data.list) ? res.data.list : [] |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | |
| | | const res = await getMemoList() |
| | | if(res.code == 200){ |
| | | state.memo = res.data ? res.data : {} |
| | | console.log(state.memo,'memo') |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | |
| | | |
| | | // 通知公告模块 |
| | | .notice-module { |
| | | flex: 1; |
| | | .notice-list { |
| | | flex: 1; |
| | | overflow: hidden; |
| | | overflow-y: auto; |
| | | |
| | | .notice-item { |
| | |
| | | |
| | | // 流程中心模块 |
| | | .process-module { |
| | | flex: 1; |
| | | overflow-y: auto; |
| | | .process-list { |
| | | flex: 1; |
| | | overflow-y: auto; |
| | | |
| | | .process-item { |
| | | margin-bottom: 16px; |
| | | margin-bottom: 8px; |
| | | |
| | | .process-info { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding-bottom: 8px; |
| | | margin-bottom: 8px; |
| | | box-sizing: border-box; |
| | | border-bottom: 1px dashed #f0f0f0; |
| | | cursor: pointer; |
| | | |
| | | .process-name { |
| | | color: #333; |
| | | font-size: 14px; |
| | | font-size: 16px; |
| | | flex: 1; |
| | | margin-right: 12px; |
| | | |
| | | &:hover { |
| | | color: #409eff; |
| | | } |
| | | } |
| | | |
| | | .process-status { |
| | |
| | | padding: 2px 8px; |
| | | border-radius: 4px; |
| | | flex-shrink: 0; |
| | | margin-right: 10px; |
| | | |
| | | &.processing { |
| | | background: #e6f7ff; |
| | |
| | | } |
| | | |
| | | &.success { |
| | | background: #f6ffed; |
| | | background: #edffdb; |
| | | color: #52c41a; |
| | | } |
| | | |
| | | &.normal { |
| | | background: #ccc; |
| | | color: #333; |
| | | background: #ffebca; |
| | | color: #ff6518; |
| | | } |
| | | |
| | | &.seal { |
| | | background: #ffe6e6; |
| | | color: #ff1818; |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | // 备忘录模块 |
| | | .memo-module { |
| | | flex: 1; |
| | | .memo-content { |
| | | flex: 1; |
| | | display: flex; |