| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- import { Message } from 'element-ui'
- import request, { tenantRequest } from '@/utils/request'
- import {
- add,
- del,
- submit,
- resolve,
- reject,
- send,
- messageSend,
- addStatusScope,
- addOrg,
- canDel
- } from './base'
- import { ScheduleType } from '@/constant'
- export function getSchedules (query) {
- const { pageNum: pageIndex, pageSize, ...params } = query
- return tenantRequest({
- url: '/content/calendar/page',
- method: 'POST',
- data: addStatusScope({
- pageIndex, pageSize,
- ...params
- })
- }).then(({ data, totalCount }) => {
- data.forEach(schedule => {
- schedule.del = canDel(schedule)
- })
- return { data, totalCount }
- })
- }
- export function getSchedule (id, options) {
- return request({
- url: `/content/programCalendar/${id}`,
- method: 'GET',
- ...options
- }).then(({ data }) => {
- if (data) {
- const { eventDetail, ...schedule } = data
- return { events: JSON.parse(eventDetail) || [], ...schedule }
- }
- return null
- })
- }
- export function addSchedule (data) {
- return add({
- url: '/content/calendar',
- method: 'POST',
- data: addOrg(data)
- }, tenantRequest)
- }
- export function deleteSchedule ({ id, name }) {
- return del({
- url: `/content/calendar/${id}`,
- method: 'DELETE'
- }, name)
- }
- export function saveScheduleEvents (schedule, events) {
- const { id } = schedule
- return messageSend({
- url: `/content/calendar/${id}/eventList`,
- method: 'POST',
- data: events
- }, '保存')
- }
- function checkSchedule (type, events) {
- if (!events.length) {
- Message({
- type: 'warning',
- message: '请先添加节目'
- })
- return false
- }
- switch (type) {
- case ScheduleType.RECUR:
- if (events.length < 2) {
- Message({
- type: 'warning',
- message: '请至少添加两个节目'
- })
- return false
- }
- break
- case ScheduleType.COMPLEX:
- if (type === ScheduleType.COMPLEX) {
- const now = Date.now()
- if (!events.some(({ until }) => !until || new Date(until) > now)) {
- Message({
- type: 'warning',
- message: '无有效节目,请添加节目'
- })
- return false
- }
- }
- break
- default:
- Message({
- type: 'warning',
- message: '不支持的类型'
- })
- return false
- }
- return true
- }
- export function submitSchedule ({ id, type, name }, events) {
- return new Promise((resolve, reject) => {
- if (events) {
- resolve(events)
- } else {
- send({
- url: `/content/programCalendar/${id}`,
- method: 'GET'
- }).then(({ data }) => {
- resolve(JSON.parse(data.eventDetail))
- }, reject)
- }
- }).then(events => {
- if (checkSchedule(type, events)) {
- return submit({
- url: `/content/calendar/${id}/submit`,
- method: 'POST'
- }, name)
- }
- return Promise.reject()
- })
- }
- export function resolveSchedule ({ id, name }) {
- return resolve({
- url: `/content/calendar/${id}/approval`,
- method: 'POST',
- data: { remark: '' }
- }, name)
- }
- export function rejectSchedule ({ id, name }, remark) {
- return reject({
- url: `/content/calendar/${id}/reject`,
- method: 'POST',
- data: { remark }
- }, name)
- }
- export function copySchedule ({ id }, name) {
- return messageSend({
- url: '/content/calendar/copy',
- method: 'POST',
- data: addOrg({ id, name })
- }, '复制')
- }
|