diff --git a/.env.development b/.env.development
index 12fb88a..cbd903c 100644
--- a/.env.development
+++ b/.env.development
@@ -1,5 +1,5 @@
# .env.development
-VITE_APP_BASEURL=https://yls-api-uat.dctest.digitalyili.com/
+VITE_APP_BASEURL=https://yls-api-uat.dctest.digitalyili.com
VITE_APP_ENV=development
VITE_APP_CURRENTMODE=dev
VITE_APP_BASEOSS=https://diaoyan-files.automark.cc
diff --git a/.env.uat b/.env.uat
index 87f5044..4d7dde8 100644
--- a/.env.uat
+++ b/.env.uat
@@ -1,5 +1,5 @@
# .env.development
-VITE_APP_BASEURL=https://yls-api-uat.dctest.digitalyili.com/api/
+VITE_APP_BASEURL=https://yls-api-uat.dctest.digitalyili.com
VITE_APP_ENV=uat
VITE_APP_CURRENTMODE=uat
VITE_APP_BASEOSS=https://diaoyan-files.automark.cc
diff --git a/components.d.ts b/components.d.ts
index 39ef1c0..2162b4d 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -11,7 +11,6 @@ declare module 'vue' {
RichText: typeof import('./src/components/RichText.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
- 'Van-': typeof import('vant/es')['-']
VanActionSheet: typeof import('vant/es')['ActionSheet']
VanButton: typeof import('vant/es')['Button']
VanCell: typeof import('vant/es')['Cell']
@@ -20,6 +19,7 @@ declare module 'vue' {
VanCheckboxGroup: typeof import('vant/es')['CheckboxGroup']
VanCol: typeof import('vant/es')['Col']
VanDivider: typeof import('vant/es')['Divider']
+ VanFeild: typeof import('vant/es')['Feild']
VanField: typeof import('vant/es')['Field']
VanGrid: typeof import('vant/es')['Grid']
VanGridItem: typeof import('vant/es')['GridItem']
@@ -35,6 +35,7 @@ declare module 'vue' {
VanSwitch: typeof import('vant/es')['Switch']
VanTabbar: typeof import('vant/es')['Tabbar']
VanTabbarItem: typeof import('vant/es')['TabbarItem']
+ YLCascader: typeof import('./src/components/YLCascader.vue')['default']
YLPicker: typeof import('./src/components/YLPicker.vue')['default']
YLSelect: typeof import('./src/components/YLSelect.vue')['default']
}
diff --git a/package.json b/package.json
index efb710f..955846a 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,9 @@
"lint": "npx eslint -c ./node_modules/@yl/yili-fe-lint-config/eslintrc.vue3.js \"src/**/*.{js,ts,tsx,vue,html}\" --fix",
"stylelint": "npx stylelint -c ./node_modules/@yl/yili-fe-lint-config/stylelintrc.js \"**/*.{css,scss,sass,less,vue,html}\" --fix"
},
+ "optionalDependencies": {
+ "@rollup/rollup-linux-x64-musl": "*"
+ },
"dependencies": {
"@element-plus/icons-vue": "^2.3.1",
"axios": "^1.8.2",
diff --git a/src/assets/css/main.scss b/src/assets/css/main.scss
index 603da52..5725a99 100644
--- a/src/assets/css/main.scss
+++ b/src/assets/css/main.scss
@@ -11,6 +11,10 @@ a,
transition: 0.4s;
}
+.ml10 {
+ margin-left: 10px;
+}
+
@media (hover: hover) {
a:hover {
background-color: hsla(160deg, 100%, 37%, 0.2);
diff --git a/src/components/YLCascader.vue b/src/components/YLCascader.vue
new file mode 100644
index 0000000..3940ff5
--- /dev/null
+++ b/src/components/YLCascader.vue
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
diff --git a/src/components/YLPicker.vue b/src/components/YLPicker.vue
index 1e98e52..7e5cf8f 100644
--- a/src/components/YLPicker.vue
+++ b/src/components/YLPicker.vue
@@ -84,7 +84,9 @@ const getType = (v: any) => {
return Object.prototype.toString.call(v).slice(8, -1).toLowerCase();
};
// 返回指定格式的日期时间
-const getDateByFormat = (date: Date | string, fmt: dateFormat) => {
+const getDateByFormat = (dateParam: Date | string, fmt: dateFormat) => {
+ // 避免直接修改参数
+ let date = dateParam;
const thisDateType = getType(date);
if (date === '' || (thisDateType !== 'date' && thisDateType !== 'string')) {
date = new Date();
@@ -100,7 +102,6 @@ const getDateByFormat = (date: Date | string, fmt: dateFormat) => {
const m = date.getMinutes();
const s = date.getSeconds();
// 个位数补0
- // 月份比实际获取的少1,所以要加1
const _M = M < 10 ? `0${M}` : M.toString();
const _D = D < 10 ? `0${D}` : D.toString();
const _h = h < 10 ? `0${h}` : h.toString();
@@ -116,13 +117,15 @@ const getDateByFormat = (date: Date | string, fmt: dateFormat) => {
};
// 比较两个日期大小
-const dateRangeLegal = (sDate: string | Date, eDate: string | Date) => {
+const dateRangeLegal = (sDateParam: string | Date, eDateParam: string | Date) => {
+ // 避免直接修改参数
+ let sDate = sDateParam;
+ let eDate = eDateParam;
if (!sDate || !eDate) {
return false;
}
// 补全模板
const complateStr = '0000-01-01 00:00:00';
- // 兼容ios
if (typeof sDate === 'string') {
sDate = (sDate + complateStr.slice(sDate.length)).replace(/-/g, '/');
}
@@ -167,8 +170,8 @@ const getMaxDateLimit = computed(() => {
props.format
);
const tempStr = '0000-12-31 23:59:59';
- const result
- = props.maxDate.length !== 0 && thisMax.length > props.maxDate.length
+ const result =
+ props.maxDate.length !== 0 && thisMax.length > props.maxDate.length
? thisMax.slice(0, props.maxDate.length) + tempStr.slice(props.maxDate.length)
: thisMax;
return result.slice(0, props.format.length);
@@ -191,8 +194,8 @@ function onChange({ selectedValues, columnIndex }) {
renderMinuteColumns,
renderSecondColumns
];
- updateColumns[columnIndex]
- && updateColumns[columnIndex](changeValue, getMinDateLimit.value, getMaxDateLimit.value, false);
+ updateColumns[columnIndex] &&
+ updateColumns[columnIndex](changeValue, getMinDateLimit.value, getMaxDateLimit.value, false);
}
// 渲染全部列
@@ -318,15 +321,16 @@ const renderMonthColumns = (
s: string,
e: string,
isFirst: boolean,
- outRange: boolean = false
+ outRangeParam: boolean = false
) => {
- const thisY = Number(v.slice(0, 4)); // 获取当前月
- const thisM = Number(v.slice(5, 7)); // 获取当前月
- const minY = Number(s.slice(0, 4)); // 最小年份
- const maxY = Number(e.slice(0, 4)); // 最大年份
- const listArr: any = []; // 获取月份数组
- let forStart = -1; // 最小月份
- let forEnd = -1; // 最小月份
+ let outRange = outRangeParam;
+ const thisY = Number(v.slice(0, 4));
+ const thisM = Number(v.slice(5, 7));
+ const minY = Number(s.slice(0, 4));
+ const maxY = Number(e.slice(0, 4));
+ const listArr: any = [];
+ let forStart = -1;
+ let forEnd = -1;
if (thisY === minY && thisY === maxY) {
forStart = Number(s.slice(5, 7));
forEnd = Number(e.slice(5, 7));
@@ -389,24 +393,25 @@ const renderDayColumns = (
s: string,
e: string,
isFirst: boolean,
- outRange: boolean = false
+ outRangeParam: boolean = false
) => {
- const thisYM = v.slice(0, 7); // 获取当前年月
- const thisD = Number(v.slice(8, 10)); // 获取当前日
- const startYM = s.slice(0, 7); // 开始时间临界值
- const endYM = e.slice(0, 7); // 结束时间临界值
- const listArr: any = []; // 获取月份数组
- let forStart = -1; // 最小月份
- let forEnd = -1; // 最小月份
+ let outRange = outRangeParam;
+ const thisYM = v.slice(0, 7);
+ const thisD = Number(v.slice(8, 10));
+ const startYM = s.slice(0, 7);
+ const endYM = e.slice(0, 7);
+ const listArr: any = [];
+ let forStart = -1;
+ let forEnd = -1;
if (thisYM === startYM && thisYM === endYM) {
- forStart = Number(s.slice(8, 10)); // 开始时间的天临界值
- forEnd = Number(e.slice(8, 10)); // 结束时间的天临界值
+ forStart = Number(s.slice(8, 10));
+ forEnd = Number(e.slice(8, 10));
} else if (thisYM === startYM) {
forStart = Number(s.slice(8, 10));
forEnd = getCountDays(Number(v.slice(0, 4)), Number(v.slice(5, 7)));
} else if (thisYM === endYM) {
forStart = 1;
- forEnd = Number(e.slice(8, 10)); // 结束时间的天临界值
+ forEnd = Number(e.slice(8, 10));
} else {
forStart = 1;
forEnd = getCountDays(Number(v.slice(0, 4)), Number(v.slice(5, 7)));
@@ -460,18 +465,24 @@ const renderHourColumns = (
s: string,
e: string,
isFirst: boolean,
- outRange: boolean = false
+ outRangeParam: boolean = false
) => {
- const thisYMD = v.slice(0, 10); // 获取当前年月日
- const startYMD = s.slice(0, 10); // 开始时间临界值
- const endYMD = e.slice(0, 10); // 结束时间临界值
- const thisH = Number(v.slice(11, 13)); // 获取当前小时
- const listArr: any = []; // 获取小时数组
- let forStart = -1; // 最小月份
- let forEnd = -1; // 最小月份
+ // 避免直接修改参数
+ let outRange = outRangeParam;
+ // 获取当前年月日
+ const thisYMD = v.slice(0, 10);
+ // 开始时间临界值
+ const startYMD = s.slice(0, 10);
+ // 结束时间临界值
+ const endYMD = e.slice(0, 10);
+ // 获取当前小时
+ const thisH = Number(v.slice(11, 13));
+ const listArr: any = [];
+ let forStart = -1;
+ let forEnd = -1;
if (thisYMD === startYMD && thisYMD === endYMD) {
- forStart = Number(s.slice(11, 13)); // 开始时间的小时临界值
- forEnd = Number(e.slice(11, 13)); // 结束时间的小时临界值
+ forStart = Number(s.slice(11, 13));
+ forEnd = Number(e.slice(11, 13));
} else if (thisYMD === startYMD) {
forStart = Number(s.slice(11, 13));
forEnd = 23;
@@ -531,15 +542,20 @@ const renderMinuteColumns = (
s: string,
e: string,
isFirst: boolean,
- outRange: boolean = false
+ outRangeParam: boolean = false
) => {
- const thisYMDH = v.slice(0, 13); // 获取当前年月日小时
- const startYMDH = s.slice(0, 13); // 开始时间临界值
- const endYMDH = e.slice(0, 13); // 结束时间临界值
- const thisM = Number(v.slice(14, 16)); // 获取当前分钟
- const listArr: any = []; // 获取数组
- let forStart = -1; // 循环最小值
- let forEnd = -1; // 循环最大值
+ // 避免直接修改参数
+ let outRange = outRangeParam;
+ // 获取当前年月日小时
+ const thisYMDH = v.slice(0, 13);
+ // 开始时间临界值
+ const startYMDH = s.slice(0, 13);
+ // 结束时间临界值
+ const endYMDH = e.slice(0, 13);
+ const thisM = Number(v.slice(14, 16));
+ const listArr: any = [];
+ let forStart = -1;
+ let forEnd = -1;
if (thisYMDH === startYMDH && thisYMDH === endYMDH) {
forStart = Number(s.slice(14, 16));
forEnd = Number(e.slice(14, 16));
@@ -602,15 +618,16 @@ const renderSecondColumns = (
s: string,
e: string,
isFirst: boolean,
- outRange: boolean = false
+ outRangeParam: boolean = false
) => {
- const thisYMDHM = v.slice(0, 16); // 获取当前年月日小时
- const startYMDHM = s.slice(0, 16); // 开始时间临界值
- const endYMDHM = e.slice(0, 16); // 结束时间临界值
- const thisS = Number(v.slice(17, 19)); // 获取当前分钟
- const listArr: any = []; // 获取数组
- let forStart = -1; // 循环最小值
- let forEnd = -1; // 循环最大值
+ let outRange = outRangeParam;
+ const thisYMDHM = v.slice(0, 16);
+ const startYMDHM = s.slice(0, 16);
+ const endYMDHM = e.slice(0, 16);
+ const thisS = Number(v.slice(17, 19));
+ const listArr: any = [];
+ let forStart = -1;
+ let forEnd = -1;
if (thisYMDHM === startYMDHM && thisYMDHM === endYMDHM) {
forStart = Number(s.slice(17, 19));
forEnd = Number(e.slice(17, 19));
@@ -665,7 +682,7 @@ watch(
}
},
{
- immediate: true // 立即监听--进入就会执行一次 监听显影状态
+ immediate: true
}
);
diff --git a/src/components/contenteditable.vue b/src/components/contenteditable.vue
index d49ad9d..c380353 100644
--- a/src/components/contenteditable.vue
+++ b/src/components/contenteditable.vue
@@ -88,7 +88,6 @@ const checkContains = (element, target) => {
try {
return element?.contains(target) ?? false;
} catch (e) {
- console.error('Contains check failed:', e);
return false;
}
};
@@ -134,11 +133,11 @@ onMounted(() => {
bottom: 0;
left: 0;
z-index: 2008;
+ display: flex;
width: 100%;
height: 40px;
padding: 0 10px;
background: #fff;
- display: flex;
line-height: 40px;
& button {
diff --git a/src/request/axios/index.ts b/src/request/axios/index.ts
index 3ec1964..8d7e34c 100644
--- a/src/request/axios/index.ts
+++ b/src/request/axios/index.ts
@@ -10,7 +10,8 @@ import axios from 'axios';
const service = axios.create({
// baseURL: `${baseURL}`, // url = base url + request url
// withCredentials: true, // send cookies when cross-domain requests
- timeout: 30000 // request timeout
+ // request timeout
+ timeout: 30000
});
// request interceptor
@@ -36,7 +37,12 @@ service.interceptors.request.use(
// response interceptor
service.interceptors.response.use(
(response) => {
- if (response.status === 200 || response.status === 201 || response.status === 202 || response.status === 204) {
+ if (
+ response.status === 200
+ || response.status === 201
+ || response.status === 202
+ || response.status === 204
+ ) {
if (response.config.method === 'put') {
// message.success('保存中...');
}
diff --git a/src/stores/modules/common.ts b/src/stores/modules/common.ts
index 298dc9d..796606f 100644
--- a/src/stores/modules/common.ts
+++ b/src/stores/modules/common.ts
@@ -407,7 +407,6 @@ export const useCommonStore = defineStore('common', {
}),
actions: {
async fetchQuestionInfo(questionInfo) {
- console.log(questionInfo, 456);
try {
if (!questionInfo) return;
diff --git a/src/utils/QuestionJsons/MartrixQuestion.js b/src/utils/QuestionJsons/MartrixQuestion.js
index 583eccf..19dba37 100644
--- a/src/utils/QuestionJsons/MartrixQuestion.js
+++ b/src/utils/QuestionJsons/MartrixQuestion.js
@@ -7,44 +7,44 @@ export default {
title: '',
options: [
[
- {
- id: '',
- is_fixed: 0,
- is_other: 0,
- is_remove_other: 0,
- option: '
选项1
',
- option_config: {
- image_url: [],
- title: '',
- instructions: [],
- option_type: 0,
- limit_right_content: ''
- },
- option_index: 1,
- parent_id: 0,
- type: 0,
- cascade: [],
- config: []
- },
- {
- id: '',
- is_fixed: 0,
- is_other: 0,
- is_remove_other: 0,
- option: '选项2
',
- option_config: {
- image_url: [],
- title: '',
- instructions: [],
- option_type: 0,
- limit_right_content: ''
- },
- option_index: 1,
- parent_id: 0,
- type: 0,
- cascade: [],
- config: []
- }
+ // {
+ // id: '',
+ // is_fixed: 0,
+ // is_other: 0,
+ // is_remove_other: 0,
+ // option: '选项1
',
+ // option_config: {
+ // image_url: [],
+ // title: '',
+ // instructions: [],
+ // option_type: 0,
+ // limit_right_content: ''
+ // },
+ // option_index: 1,
+ // parent_id: 0,
+ // type: 0,
+ // cascade: [],
+ // config: []
+ // },
+ // {
+ // id: '',
+ // is_fixed: 0,
+ // is_other: 0,
+ // is_remove_other: 0,
+ // option: '选项2
',
+ // option_config: {
+ // image_url: [],
+ // title: '',
+ // instructions: [],
+ // option_type: 0,
+ // limit_right_content: ''
+ // },
+ // option_index: 1,
+ // parent_id: 0,
+ // type: 0,
+ // cascade: [],
+ // config: []
+ // }
],
[
{
diff --git a/src/utils/request.js b/src/utils/request.js
index d583f16..1bf015c 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -12,9 +12,11 @@ const baseURL = config.default.proxyUrl;
// create an axios instance
const service = axios.create({
- baseURL: `${baseURL}`, // url = base url + request url
+ // url = base url + request url
+ baseURL: `${baseURL}/api`,
// withCredentials: true, // send cookies when cross-domain requests
- timeout: 30000 // request timeout
+ // request timeout
+ timeout: 30000
});
// request interceptor
@@ -24,10 +26,10 @@ service.interceptors.request.use(
config.headers.Accept = 'application/json';
}
config.headers.Authorization = `${localStorage.getItem('plantToken')}`;
- if (!config.headers.remoteIp) {
- config.baseURL += '/api';
- }
- delete config.headers.host;
+ // if (!config.headers.remoteIp) {
+ // config.baseURL += '/api';
+ // }
+ // delete config.headers.host;
config.headers.remoteIp = localStorage.getItem('plantIp') || '127.0.0.1';
// if (store.state.common.token) {
// config.headers['Login-Type'] = 'pc';
@@ -42,10 +44,10 @@ service.interceptors.request.use(
service.interceptors.response.use(
(response) => {
if (
- response.status === 200
- || response.status === 201
- || response.status === 202
- || response.status === 204
+ response.status === 200 ||
+ response.status === 201 ||
+ response.status === 202 ||
+ response.status === 204
) {
if (response.config.method === 'put') {
// message.success('保存中...');
diff --git a/src/utils/utils.js b/src/utils/utils.js
index 0521618..acecf9f 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -7,7 +7,8 @@
*/
export function getSequenceName(names, list, options) {
const result = [];
- const start = options?.start ?? 1; // 从数字几开始
+ // 从数字几开始
+ const start = options?.start ?? 1;
names.forEach((name) => {
const sequence = [];
@@ -61,7 +62,8 @@ export function getDomText(dom) {
* @returns {boolean[]}
*/
export function isRichRepeat(list, comparedList, options) {
- const imageAsDifference = options?.imageAsDifference !== false; // 不比较图片。只要存在图片,则认为两段富文本不同
+ // 不比较图片。只要存在图片,则认为两段富文本不同
+ const imageAsDifference = options?.imageAsDifference !== false;
return list.map((rich) => {
return comparedList.some((compared) => {
@@ -83,7 +85,8 @@ export function isRichRepeat(list, comparedList, options) {
* @returns {boolean[]}
*/
export function isRichEmpty(list, options) {
- const imageAsEmpty = options?.imageAsEmpty === true; // 不判断图片。只要存在图片,则认为两段富文本不为空
+ // 不判断图片。只要存在图片,则认为两段富文本不为空
+ const imageAsEmpty = options?.imageAsEmpty === true;
return list.map((rich) => {
if (!imageAsEmpty) {
diff --git a/src/views/Design/Index.vue b/src/views/Design/Index.vue
index 4b65d24..da98914 100644
--- a/src/views/Design/Index.vue
+++ b/src/views/Design/Index.vue
@@ -293,7 +293,6 @@ const actionEvent = (item, el) => {
const actionFun = {
// 单选事件 添加选项
radioAddOption: (element) => {
- console.log(element);
element.options.map((item) => {
item.push({
id: uuidv4(),
@@ -313,6 +312,8 @@ const actionFun = {
});
});
element.last_option_index += 1;
+
+ saveQueItem(questionInfo.value.logics, [element]);
},
/**
@@ -320,16 +321,59 @@ const actionFun = {
* @param element {import('./components/Questions/types/martrix.js').MatrixSurveyQuestion}
*/
addMatrixRowOption: (element) => {
+ const optionIndex = element.last_option_index;
element.options[0].push({
- option: '新增行'
+ cascade: [],
+ config: [],
+ is_fixed: 0,
+ is_other: 0,
+ is_remove_other: 0,
+ option: `行标签${element.options[0].length + 1}
`,
+ option_config: {
+ image_url: [],
+ title: '',
+ instructions: [],
+ option_type: 0,
+ limit_right_content: '右极文字1
'
+ },
+ parent_id: 0,
+ type: 1,
+ id: uuidv4(),
+ option_index: optionIndex + 1
});
+
+ element.last_option_index = optionIndex + 1;
+
+ saveQueItem(questionInfo.value.logics, [element]);
},
/**
* martrix 矩阵列数增加
* @param element {import('./components/Questions/types/martrix.js').MatrixSurveyQuestion}
*/
addMatrixColumnOption: (element) => {
- element.options[1].push({ option: '新增列' });
+ const optionIndex = element.last_option_index;
+ element.options[1].push({
+ cascade: [],
+ config: [],
+ is_fixed: 0,
+ is_other: 0,
+ is_remove_other: 0,
+ option: `列标签${element.options[1].length + 1}
`,
+ option_config: {
+ image_url: [],
+ title: '',
+ instructions: [],
+ option_type: 0,
+ limit_right_content: '右极文字1
'
+ },
+ parent_id: 0,
+ type: 2,
+ id: uuidv4(),
+ option_index: optionIndex + 1
+ });
+
+ element.last_option_index = optionIndex + 1;
+ saveQueItem(questionInfo.value.logics, [element]);
}
};
diff --git a/src/views/Design/components/ActionCompoents/QuestionAction.vue b/src/views/Design/components/ActionCompoents/QuestionAction.vue
index 442c7a1..765db4d 100644
--- a/src/views/Design/components/ActionCompoents/QuestionAction.vue
+++ b/src/views/Design/components/ActionCompoents/QuestionAction.vue
@@ -44,6 +44,7 @@
>
+
@@ -69,13 +70,25 @@
:config="activeQuestion.config"
@update-config="updateConfig"
>
-
+
+
+
+
+
@@ -125,6 +138,8 @@ import { storeToRefs } from 'pinia';
import QuestionBefore from '@/views/Design/components/ActionCompoents/components/QuestionItemAction/QuestionBefore.vue';
import RateQuestionAction from './components/QuestionItemAction/RateQuestionAction.vue';
import CompletionQuestionAction from '@/views/Design/components/ActionCompoents/components/QuestionItemAction/CompletionQuestionAction.vue';
+import FieldUploadQuestionAction from '@/views/Design/components/ActionCompoents/components/QuestionItemAction/FieldUploadQuestionAction.vue';
+import MartrixQuestionAction from '@/views/Design/components/ActionCompoents/components/QuestionItemAction/MartrixQuestionAction.vue';
import { v4 as uuidv4 } from 'uuid';
const store = useCounterStore();
const { questionsInfo } = storeToRefs(store);
@@ -238,8 +253,8 @@ const getSkipTypeText = (skipType) => {
const ls = [];
logics.map((item) => {
if (
- item.skip_type === skipType
- && item.question_index === activeQuestion.value.question_index
+ item.skip_type === skipType &&
+ item.question_index === activeQuestion.value.question_index
) {
ls.push(item);
}
@@ -255,13 +270,13 @@ const getSkipTypeText = (skipType) => {
const questionSetting = (type) => {
switch (type) {
- case 'before':
- questionBeforeShow.value = true;
+ case 'before':
+ questionBeforeShow.value = true;
- break;
- case 'after':
- questionBeforeShow.value = true;
- break;
+ break;
+ case 'after':
+ questionBeforeShow.value = true;
+ break;
}
skipType.value = type === 'before' ? 1 : 0;
};
diff --git a/src/views/Design/components/ActionCompoents/components/QuestionItemAction/Api/Index.js b/src/views/Design/components/ActionCompoents/components/QuestionItemAction/Api/Index.js
new file mode 100644
index 0000000..9be61f4
--- /dev/null
+++ b/src/views/Design/components/ActionCompoents/components/QuestionItemAction/Api/Index.js
@@ -0,0 +1,8 @@
+import request from '@/utils/request.js';
+
+export function getFileType() {
+ return request({
+ url: `/console/file_type`,
+ method: 'get'
+ });
+}
diff --git a/src/views/Design/components/ActionCompoents/components/QuestionItemAction/CompletionQuestionAction.vue b/src/views/Design/components/ActionCompoents/components/QuestionItemAction/CompletionQuestionAction.vue
index 5a44a44..f50262e 100644
--- a/src/views/Design/components/ActionCompoents/components/QuestionItemAction/CompletionQuestionAction.vue
+++ b/src/views/Design/components/ActionCompoents/components/QuestionItemAction/CompletionQuestionAction.vue
@@ -68,7 +68,6 @@
-
+
+ {
+ actionQuestion.config.min_number = Number(value);
+ }
+ "
+ >
+
+ 个
+
+
+ {
+ actionQuestion.config.max_number = Number(value);
+ }
+ "
+ >
+
+ 个
+
+
+
+
+ {
+ actionQuestion.config.min_size = Number(value);
+ }
+ "
+ >
+
+ M
+
+
+ {
+ actionQuestion.config.max_size = Number(value);
+ }
+ "
+ >
+
+ M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Design/components/ActionCompoents/components/QuestionItemAction/MartrixQuestionAction.vue b/src/views/Design/components/ActionCompoents/components/QuestionItemAction/MartrixQuestionAction.vue
new file mode 100644
index 0000000..30036dc
--- /dev/null
+++ b/src/views/Design/components/ActionCompoents/components/QuestionItemAction/MartrixQuestionAction.vue
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+ {
+ actionQuestion.config.min_select = Number(value);
+ }
+ "
+ >
+
+
+
+ 行随机
+
+
+ 列随机
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ actionQuestion.config.min_select = Number(value);
+ }
+ "
+ >
+
+ 个
+
+
+ {
+ actionQuestion.config.max_select = Number(value);
+ }
+ "
+ >
+
+ 个
+
+
+
+
+
+
diff --git a/src/views/Design/components/ActionCompoents/components/QuestionItemAction/QuestionBefore.vue b/src/views/Design/components/ActionCompoents/components/QuestionItemAction/QuestionBefore.vue
index e9e91f8..e5bd59f 100644
--- a/src/views/Design/components/ActionCompoents/components/QuestionItemAction/QuestionBefore.vue
+++ b/src/views/Design/components/ActionCompoents/components/QuestionItemAction/QuestionBefore.vue
@@ -183,7 +183,6 @@ skipOption.push(
let optionOptions = [];
// todo 不同题型逻辑对应不同 需要开发
const changeQuestionIndex = (value, logicItem) => {
- console.log(logicItem);
if (!value) {
return [];
}
@@ -315,10 +314,8 @@ const symbolOptions = [
}
];
-const getQuestionType = (value) => {
- console.log(beforeQuesOptions);
- const type = beforeQuesOptions.filter((item) => item.question_index === value)[0];
- console.log(type);
+const getQuestionType = () => {
+ // const type = beforeQuesOptions.filter((item) => item.question_index === value)[0];
};
const logicIf = (value, index) => {
diff --git a/src/views/Design/components/Questions/Choice.vue b/src/views/Design/components/Questions/Choice.vue
index 4d2aa7a..f7a0d35 100644
--- a/src/views/Design/components/Questions/Choice.vue
+++ b/src/views/Design/components/Questions/Choice.vue
@@ -73,7 +73,7 @@
-
+
+
+ {{ index + 1 }}
+
-
-
- *
-
-
-
+
+
-
-
+
+
上传文件
-
+
@@ -76,5 +94,8 @@ function handleFileUpload() {
align-items: center;
width: 100%;
height: 50px;
+ padding: 5px;
+ border: 1px solid #dfdfdf;
+ border-radius: 3px;
}
diff --git a/src/views/Design/components/Questions/MartrixQuestion.vue b/src/views/Design/components/Questions/MartrixQuestion.vue
index c65b646..45e068e 100644
--- a/src/views/Design/components/Questions/MartrixQuestion.vue
+++ b/src/views/Design/components/Questions/MartrixQuestion.vue
@@ -1,12 +1,17 @@
-
+
+
+ {{ index + 1 }}
+
-
-
- *
-
-
-
+
+
-
+
-
+