import request, { tenantRequest } from '@/utils/request' import store from '@/store' import { add, update, del, messageSend, addTenant, addTenantAndOrg, addUser } from './base' export function addProgramDraft (data) { return add({ url: '/item/origin/add', method: 'POST', data: addTenantAndOrg(data) }, tenantRequest) } export function getProgramDrafts (query) { const { pageNum: currentPage, pageSize: pageCount, ...params } = query return tenantRequest({ url: '/item/origin/listByPage', method: 'POST', data: addUser({ currentPage, pageCount, ...params }) }) } export function getTemplateType () { return tenantRequest({ url: '/device/resolutionRatio', method: 'GET', params: addTenant({}) }).then(({ data }) => { return { data: Object.keys(data).map(key => { return { value: key, label: key } }) } }) } // 获取模板数据 export function getProgramTemplate (query) { const { pageNum: currentPage, pageSize: pageCount, ...params } = query return tenantRequest({ url: '/item/template/listByPage', method: 'POST', data: addTenant({ currentPage, pageCount, ...params }) }) } export function deleteProgramDraft ({ id, name }) { return del({ url: '/item/origin/delete', method: 'DELETE', params: { id } }, name) } export function updateProgramDraft ({ id, name, duration, itemJsonStr, keyNameList, base64, generate }) { const formData = new FormData() const result = /^data:(.+);base64,(.+)$/.exec(base64) if (result) { const binaryString = atob(result[2]) const length = binaryString.length const mine = new Uint8Array(length) for (let i = 0; i < length; i++) { mine[i] = binaryString.charCodeAt(i) } formData.append('file', new Blob([mine], { type: result[1] })) } formData.append('id', id) formData.append('duration', duration) formData.append('itemJsonStr', itemJsonStr) name && formData.append('name', name) generate && formData.append('keyNameList', JSON.stringify(keyNameList)) formData.append('generate', generate) console.log('formdata;;;;:', formData) return request({ url: '/item/origin/update', method: 'POST', data: formData, timeout: 0, custom: true }).then(({ data }) => data) } // 保存模板 export function saveTemplate ({ name, duration, resolutionRatio, itemJsonStr, keyNameList, base64, generate }) { console.log('name', name) console.log('duration', duration) console.log('resolutionRatio', resolutionRatio) console.log('itemJsonStr', itemJsonStr) console.log('keyNameList', keyNameList) console.log('base64', base64) console.log('generate', generate) const formData = new FormData() const result = /^data:(.+);base64,(.+)$/.exec(base64) if (result) { const binaryString = atob(result[2]) const length = binaryString.length const mine = new Uint8Array(length) for (let i = 0; i < length; i++) { mine[i] = binaryString.charCodeAt(i) } formData.append('file', new Blob([mine], { type: result[1] })) } formData.append('userId', store.getters.userId) formData.append('duration', duration) formData.append('resolutionRatio', resolutionRatio) formData.append('itemJsonStr', itemJsonStr) formData.append('tenant', store.getters.tenant) formData.append('org', store.getters.org) name && formData.append('name', name) generate && formData.append('keyNameList', JSON.stringify(keyNameList)) console.log('formdata;;;;:', formData) return request({ url: '/item/template/2item', method: 'POST', data: formData, timeout: 0, custom: true }).then(({ data }) => data) } export function updateProgramDraftName (data) { return update({ url: '/item/origin/updateItemName', method: 'POST', data }) } export function getProgramDraft (id, options) { return request({ url: `/item/origin/getById/${id}`, method: 'GET', ...options }) } export function copyProgramDraft (programDraft) { return messageSend({ url: '/item/origin/copy', method: 'POST', data: addTenantAndOrg(programDraft) }, '复制', tenantRequest) } export function copyProgram (program) { return messageSend({ url: '/item/copy', method: 'POST', data: addTenantAndOrg(program) }, '复制', tenantRequest) } export function getPrograms (query) { const { pageNum: currentPage, pageSize: pageCount, ...params } = query return tenantRequest({ url: '/item/listByPage', method: 'POST', data: addTenant({ currentPage, pageCount, ...params }) }) } export function getProgram (id, options) { return request({ url: `/item/getById/${id}`, method: 'GET', ...options }) } // 节目模板详情 export function getTemplateProgram (id, options) { return request({ url: `/item/template/getById/${id}`, method: 'GET', ...options }) } export function deleteProgram ({ id, name }) { return del({ url: '/item/delete', method: 'DELETE', params: { id } }, name) } export function updateProgramName (data) { return update({ url: '/item/updateItemName', method: 'POST', data }) }