278 lines
6.8 KiB
JavaScript
278 lines
6.8 KiB
JavaScript
import originRequest from "@/utils/request.js";
|
|
import { computed } from "vue";
|
|
import { Modal } from "ant-design-vue";
|
|
import { setSurveyStatus } from "../../ProjectManage/api";
|
|
import { getQuesByPages } from '../Design/js/util.js';
|
|
import store from "../../../store";
|
|
import fileDownload from 'js-file-download';
|
|
import router from "../../../router";
|
|
|
|
const sn = computed(() => router.currentRoute.value.query.sn || '');
|
|
let openModal = false;
|
|
function confirm() {
|
|
const status = store.state.common.surveyStatus;
|
|
|
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
let modalText = '';
|
|
if (status === 1) {
|
|
modalText = '问卷运行中,修改内容将暂停回收数据,修改完毕后需再次发布';
|
|
} else if (status === 2) {
|
|
modalText = '问卷已结束,编辑后将重新开启'
|
|
} else {
|
|
resolve();
|
|
return
|
|
}
|
|
if (openModal) return;
|
|
openModal = true;
|
|
Modal.confirm({
|
|
title: "确认消息",
|
|
content: modalText,
|
|
cancelText: "取消",
|
|
okText: "确认",
|
|
class: "custom-modal custom-modal-title-confirm-notice",
|
|
onOk: () => {
|
|
console.log('sn', router.currentRoute.value);
|
|
openModal = false;
|
|
setSurveyStatus({
|
|
sn: sn.value,
|
|
status: 0
|
|
}).then((data) => {
|
|
store.commit("common/M_COMMON_SET_SURVEY_STATUS", +data.data.status);
|
|
}).finally(() => {
|
|
resolve();
|
|
});
|
|
},
|
|
onCancel: async () => {
|
|
console.log('sn', router.currentRoute.value);
|
|
openModal = false;
|
|
let { data = {} } = await getQuestionList(sn.value);
|
|
if (data.questions) {
|
|
console.log('data', data);
|
|
data.survey.pages = data.survey.pages || [[]];
|
|
const combineList = getQuesByPages(data.questions, data.survey.pages);
|
|
data.questions = combineList;
|
|
store.commit('common/A_COMMON_SET_QUESTIONINFO', JSON.stringify(data));
|
|
store.commit('common/M_COMMON_SET_SURVEY_STATUS', data.survey.status);
|
|
// console.log('store.state.activeQuestion',);
|
|
|
|
if (store?.state?.common?.activeQuestion) {
|
|
const result = data.questions.find(s => s?.id === store?.state?.common?.activeQuestion?.id) || undefined;
|
|
if (result) {
|
|
store.commit('common/A_COMMON_SET_ACTIVEQUESTION', JSON.stringify(result));
|
|
}
|
|
}
|
|
}
|
|
reject("Canceled");
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
function request(...rest) {
|
|
return confirm().then(() => originRequest(...rest)).catch((error) => Promise.reject(error || "Canceled"));
|
|
}
|
|
|
|
|
|
/* 获取问题列表 */
|
|
export function getQuestionList(params, code) {
|
|
return originRequest({
|
|
headers: {
|
|
'survey-invite-code': code || '',
|
|
},
|
|
url: `/console/surveys/${params}/questions`,
|
|
method: "get",
|
|
});
|
|
}
|
|
|
|
/* 保存问题 */
|
|
export function saveQuestion(params) {
|
|
return request({
|
|
url: `/console/surveys/${sn.value}/questions`,
|
|
method: "post",
|
|
data: params
|
|
});
|
|
}
|
|
|
|
/* 级联题csv上传 */
|
|
export function uploadCascadeCsv(params) {
|
|
return request({
|
|
url: `/console/cascade_import`,
|
|
method: "post",
|
|
data: params.data
|
|
});
|
|
}
|
|
|
|
/* 问卷标题,介绍语,结束语配置 */
|
|
export function updateSurveyConfig(params) {
|
|
return request({
|
|
url: `/console/surveys/${sn.value}/details`,
|
|
method: "post",
|
|
data: params.data
|
|
});
|
|
}
|
|
|
|
/* 作答设置 - 查询 */
|
|
export function getAnswerSetting(sn) {
|
|
return originRequest({
|
|
url: `/console/surveys/${sn}/answer_setting`,
|
|
method: "get"
|
|
});
|
|
}
|
|
|
|
/* 作答设置 - 设置*/
|
|
export function setAnswerSetting(sn, params) {
|
|
return request({
|
|
url: `/console/surveys/${sn}/answer_setting`,
|
|
method: "put",
|
|
data: params
|
|
});
|
|
}
|
|
|
|
/* 级联提下载csv*/
|
|
export function downLoadCsv(params) {
|
|
return request({
|
|
url: `/console/template/${params}`,
|
|
method: "get",
|
|
responseType: 'arraybuffer'
|
|
});
|
|
}
|
|
|
|
/* 文件类型*/
|
|
export function fileType(params) {
|
|
return request({
|
|
url: `/console/file_type`,
|
|
method: "get",
|
|
});
|
|
}
|
|
|
|
/* Maxdiff生成设计*/
|
|
export function designs(params) {
|
|
return request({
|
|
url: `/console/surveys/${params.sn}/questions/${params.question_index}/designs`,
|
|
method: "post",
|
|
data: params
|
|
});
|
|
}
|
|
|
|
/* cbc生成设计*/
|
|
export function cbcDesigns(params) {
|
|
return request({
|
|
url: `/console/surveys/${params.sn}/questions/${params.question_index}/cbc_designs`,
|
|
method: "post",
|
|
data: params
|
|
});
|
|
}
|
|
|
|
|
|
/* Maxdiff导入设计*/
|
|
export function mxd_import(params) {
|
|
return request({
|
|
url: `/console/surveys/${params.get("sn")}/questions/${params.get("question_index")}/mxd_import`,
|
|
method: "post",
|
|
data: params
|
|
});
|
|
}
|
|
|
|
/* 3d货架导入设计*/
|
|
export function cbc_shelves_import(params) {
|
|
return request({
|
|
url: `/console/surveys/${params.get("sn")}/questions/${params.get("question_index")}/cbc_shelves_import`,
|
|
method: "post",
|
|
data: params
|
|
});
|
|
}
|
|
|
|
|
|
/* Maxdiff导出设计*/
|
|
const mxd_export = async (params,name) => {
|
|
const url = params.url;
|
|
// await request({
|
|
// url: `/console/surveys/${params.sn}/questions/${params.question_index}/mxd_export`,
|
|
// method: "post",
|
|
// data: params
|
|
// });
|
|
const data = await request({
|
|
url,
|
|
method: "get",
|
|
headers: {
|
|
//'token': '...', // 根据需求添加
|
|
'Content-type': 'application/x-www-form-urlencoded'
|
|
},
|
|
withCredentials: false,
|
|
responseType: 'arraybuffer'
|
|
})
|
|
|
|
fileDownload(data, name, 'application/vnd.ms-excel');
|
|
}
|
|
|
|
|
|
/* bpto导入设计*/
|
|
export function bpto_import(params) {
|
|
return request({
|
|
url: `/console/bpto_import`,
|
|
method: "post",
|
|
data: params
|
|
});
|
|
}
|
|
|
|
/* bpto导入设计*/
|
|
const template = async (params, name) => {
|
|
const data = await request({
|
|
url: `/console/template/${params.type}`,
|
|
fileName: name,
|
|
headers: {
|
|
//'token': '...', // 根据需求添加
|
|
'Content-type': 'application/x-www-form-urlencoded'
|
|
},
|
|
responseType: 'arraybuffer'
|
|
});
|
|
fileDownload(data, name, 'application/vnd.ms-excel');
|
|
}
|
|
export { template, mxd_export };
|
|
|
|
|
|
|
|
/* bpto导入设计*/
|
|
export function getProcess(params) {
|
|
return request({
|
|
url: `/console/surveys/${params.sn}/process`,
|
|
method: "get",
|
|
params
|
|
});
|
|
}
|
|
|
|
|
|
/* bpto导入设计*/
|
|
export function postProcess(params) {
|
|
return request({
|
|
url: `/console/surveys/${params.sn}//process`,
|
|
method: "post",
|
|
data: params
|
|
});
|
|
}
|
|
/* 3d货架资源列表*/
|
|
export function getImgList() {
|
|
return request({
|
|
url: `/console/shelves_resources`,
|
|
method: "get",
|
|
});
|
|
}
|
|
|
|
|
|
/* 删除*/
|
|
export function deleteDesigns(params) {
|
|
return request({
|
|
url: `/console/surveys/${params.sn}/questions/${params.question_index}/designs`,
|
|
method: "DELETE",
|
|
data: params
|
|
});
|
|
}
|
|
/* 流程控制问题列表*/
|
|
export function processControlQuesList(sn) {
|
|
return request({
|
|
url: `/console/surveys/${sn}/process_questions`,
|
|
});
|
|
}
|