问卷调整

main
yanzai 11 months ago
parent 684726c7bd
commit 72700c0702

@ -34,6 +34,15 @@ class QuestionItemController extends Controller
$jichu = $request->post('jichu'); $jichu = $request->post('jichu');
$tuijian = $request->post('tuijian'); $tuijian = $request->post('tuijian');
$gaoduan = $request->post('gaoduan'); $gaoduan = $request->post('gaoduan');
$jichu_nan = $request->post('jichu_nan');
$jichu_nv_weihun = $request->post('jichu_nv_weihun');
$jichu_nv_yihun = $request->post('jichu_nv_yihun');
$tuijian_nan = $request->post('tuijian_nan');
$tuijian_nv_weihun = $request->post('tuijian_nv_weihun');
$tuijian_nv_yihun = $request->post('tuijian_nv_yihun');
$gaoduan_nan = $request->post('gaoduan_nan');
$gaoduan_nv_weihun = $request->post('gaoduan_nv_weihun');
$gaoduan_nv_yihun = $request->post('gaoduan_nv_yihun');
if (!$name) { if (!$name) {
return \Yz::echoError('请填写项目名称'); return \Yz::echoError('请填写项目名称');
} }
@ -49,6 +58,15 @@ class QuestionItemController extends Controller
'jichu' => $jichu ?? '[]', 'jichu' => $jichu ?? '[]',
'tuijian' => $tuijian ?? '[]', 'tuijian' => $tuijian ?? '[]',
'gaoduan' => $gaoduan ?? '[]', 'gaoduan' => $gaoduan ?? '[]',
'jichu_nan' => $jichu_nan,
'jichu_nv_yihun' => $jichu_nv_yihun,
'jichu_nv_weihun' => $jichu_nv_weihun,
'tuijian_nan' => $tuijian_nan,
'tuijian_nv_yihun' => $tuijian_nv_yihun,
'tuijian_nv_weihun' => $tuijian_nv_weihun,
'gaoduan_nan' => $gaoduan_nan,
'gaoduan_nv_yihun' => $gaoduan_nv_yihun,
'gaoduan_nv_weihun' => $gaoduan_nv_weihun,
'created_at' => date('Y-m-d H:i:s'), 'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'),
]); ]);
@ -63,6 +81,15 @@ class QuestionItemController extends Controller
$jichu = $request->post('jichu'); $jichu = $request->post('jichu');
$tuijian = $request->post('tuijian'); $tuijian = $request->post('tuijian');
$gaoduan = $request->post('gaoduan'); $gaoduan = $request->post('gaoduan');
$jichu_nan = $request->post('jichu_nan');
$jichu_nv_weihun = $request->post('jichu_nv_weihun');
$jichu_nv_yihun = $request->post('jichu_nv_yihun');
$tuijian_nan = $request->post('tuijian_nan');
$tuijian_nv_weihun = $request->post('tuijian_nv_weihun');
$tuijian_nv_yihun = $request->post('tuijian_nv_yihun');
$gaoduan_nan = $request->post('gaoduan_nan');
$gaoduan_nv_weihun = $request->post('gaoduan_nv_weihun');
$gaoduan_nv_yihun = $request->post('gaoduan_nv_yihun');
if (!$name) { if (!$name) {
return \Yz::echoError('请填写项目名称'); return \Yz::echoError('请填写项目名称');
} }
@ -78,6 +105,15 @@ class QuestionItemController extends Controller
'jichu' => $jichu ?? '[]', 'jichu' => $jichu ?? '[]',
'tuijian' => $tuijian ?? '[]', 'tuijian' => $tuijian ?? '[]',
'gaoduan' => $gaoduan ?? '[]', 'gaoduan' => $gaoduan ?? '[]',
'jichu_nan' => $jichu_nan,
'jichu_nv_yihun' => $jichu_nv_yihun,
'jichu_nv_weihun' => $jichu_nv_weihun,
'tuijian_nan' => $tuijian_nan,
'tuijian_nv_yihun' => $tuijian_nv_yihun,
'tuijian_nv_weihun' => $tuijian_nv_weihun,
'gaoduan_nan' => $gaoduan_nan,
'gaoduan_nv_yihun' => $gaoduan_nv_yihun,
'gaoduan_nv_weihun' => $gaoduan_nv_weihun,
'updated_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'),
]); ]);
return \Yz::Return(true, '操作完成'); return \Yz::Return(true, '操作完成');

@ -14,9 +14,16 @@ class QuestionnaireController extends Controller
$name = $request->post('name'); $name = $request->post('name');
$items = $request->post('items'); $items = $request->post('items');
$questions = $request->post('questions'); $questions = $request->post('questions');
$jichu_combo_id = $request->post('jichu_combo'); $jichu_nan = $request->post('jichu_nan');
$tuijian_combo_id = $request->post('tuijian_combo'); $jichu_nv_weihun = $request->post('jichu_nv_weihun');
$gaoduan_combo_id = $request->post('gaoduan_combo'); $jichu_nv_yihun = $request->post('jichu_nv_yihun');
$tuijian_nan = $request->post('tuijian_nan');
$tuijian_nv_weihun = $request->post('tuijian_nv_weihun');
$tuijian_nv_yihun = $request->post('tuijian_nv_yihun');
$gaoduan_nan = $request->post('gaoduan_nan');
$gaoduan_nv_weihun = $request->post('gaoduan_nv_weihun');
$gaoduan_nv_yihun = $request->post('gaoduan_nv_yihun');
if (!$name) { if (!$name) {
return \Yz::echoError('请填写问卷名称'); return \Yz::echoError('请填写问卷名称');
} }
@ -31,9 +38,15 @@ class QuestionnaireController extends Controller
'type' => $type, 'type' => $type,
'name' => $name, 'name' => $name,
'items' => $items ?? '[]', 'items' => $items ?? '[]',
'jichu_combo' => $jichu_combo_id, 'jichu_nan' => $jichu_nan,
'tuijian_combo' => $tuijian_combo_id, 'jichu_nv_yihun' => $jichu_nv_yihun,
'gaoduan_combo' => $gaoduan_combo_id, 'jichu_nv_weihun' => $jichu_nv_weihun,
'tuijian_nan' => $tuijian_nan,
'tuijian_nv_yihun' => $tuijian_nv_yihun,
'tuijian_nv_weihun' => $tuijian_nv_weihun,
'gaoduan_nan' => $gaoduan_nan,
'gaoduan_nv_yihun' => $gaoduan_nv_yihun,
'gaoduan_nv_weihun' => $gaoduan_nv_weihun,
'questions' => $questions ?? '[]', 'questions' => $questions ?? '[]',
'created_at' => date('Y-m-d H:i:s'), 'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'),
@ -47,9 +60,15 @@ class QuestionnaireController extends Controller
$type = $request->post('type'); $type = $request->post('type');
$name = $request->post('name'); $name = $request->post('name');
$items = $request->post('items'); $items = $request->post('items');
$jichu_combo_id = $request->post('jichu_combo'); $jichu_nan = $request->post('jichu_nan');
$tuijian_combo_id = $request->post('tuijian_combo'); $jichu_nv_weihun = $request->post('jichu_nv_weihun');
$gaoduan_combo_id = $request->post('gaoduan_combo'); $jichu_nv_yihun = $request->post('jichu_nv_yihun');
$tuijian_nan = $request->post('tuijian_nan');
$tuijian_nv_weihun = $request->post('tuijian_nv_weihun');
$tuijian_nv_yihun = $request->post('tuijian_nv_yihun');
$gaoduan_nan = $request->post('gaoduan_nan');
$gaoduan_nv_weihun = $request->post('gaoduan_nv_weihun');
$gaoduan_nv_yihun = $request->post('gaoduan_nv_yihun');
$questions = $request->post('questions'); $questions = $request->post('questions');
if (!$name) { if (!$name) {
@ -66,9 +85,15 @@ class QuestionnaireController extends Controller
'type' => $type, 'type' => $type,
'name' => $name, 'name' => $name,
'items' => $items ?? '[]', 'items' => $items ?? '[]',
'jichu_combo' => $jichu_combo_id, 'jichu_nan' => $jichu_nan,
'tuijian_combo' => $tuijian_combo_id, 'jichu_nv_yihun' => $jichu_nv_yihun,
'gaoduan_combo' => $gaoduan_combo_id, 'jichu_nv_weihun' => $jichu_nv_weihun,
'tuijian_nan' => $tuijian_nan,
'tuijian_nv_yihun' => $tuijian_nv_yihun,
'tuijian_nv_weihun' => $tuijian_nv_weihun,
'gaoduan_nan' => $gaoduan_nan,
'gaoduan_nv_yihun' => $gaoduan_nv_yihun,
'gaoduan_nv_weihun' => $gaoduan_nv_weihun,
'questions' => $questions ?? '[]', 'questions' => $questions ?? '[]',
'updated_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'),
]); ]);

@ -202,12 +202,43 @@ class QuestionnairesLogsController extends Controller
if (!$person_info) { if (!$person_info) {
return \Yz::echoError('人员信息不存在'); return \Yz::echoError('人员信息不存在');
} }
$question_ids = [];
$question_map = [];
$content_sex='';
$content_hunyin='';
foreach ($content as $key => $value) {
$question_ids[] = $value['id'];
$question_map["q{$value['id']}"] = $value;
if ($value['question'] == '性别') {
$content_sex=$value['value'];
}
if (strpos($value['question'], "婚姻状况") !== false) {
$content_hunyin=$value['value'];
}
}
$type = $question_info->type; $type = $question_info->type;
$items = json_decode($question_info->items, true); $items = json_decode($question_info->items, true);
//获取绑定套餐的id //获取绑定套餐的id
$jichu_combo_new = (isset($question_info->jichu_combo) and !empty($question_info->jichu_combo))?$question_info->jichu_combo:0; if(strpos($content_sex, "男") !== false){
$tuijian_combo_new = (isset($question_info->tuijian_combo) and !empty($question_info->tuijian_combo))?$question_info->tuijian_combo:0; $jichu_combo_new = (isset($question_info->jichu_nan) and !empty($question_info->jichu_nan))?$question_info->jichu_nan:0;
$gaoduan_combo_new = (isset($question_info->gaoduan_combo) and !empty($question_info->gaoduan_combo))?$question_info->gaoduan_combo:0; $tuijian_combo_new = (isset($question_info->tuijian_nan) and !empty($question_info->tuijian_nan))?$question_info->tuijian_nan:0;
$gaoduan_combo_new = (isset($question_info->gaoduan_nan) and !empty($question_info->gaoduan_nan))?$question_info->gaoduan_nan:0;
}
if(strpos($content_sex, "女") !== false){
if(strpos($content_hunyin, "未婚")!== false){
$jichu_combo_new = (isset($question_info->jichu_nv_weihun) and !empty($question_info->jichu_nv_weihun))?$question_info->jichu_nv_weihun:0;
$tuijian_combo_new = (isset($question_info->tuijian_nv_weihun) and !empty($question_info->tuijian_nv_weihun))?$question_info->tuijian_nv_weihun:0;
$gaoduan_combo_new = (isset($question_info->gaoduan_nv_weihun) and !empty($question_info->gaoduan_nv_weihun))?$question_info->gaoduan_nv_weihun:0;
}
if(strpos($content_hunyin, "已婚")!== false){
$jichu_combo_new = (isset($question_info->jichu_nv_yihun) and !empty($question_info->jichu_nv_yihun))?$question_info->jichu_nv_yihun:0;
$tuijian_combo_new = (isset($question_info->tuijian_nv_yihun) and !empty($question_info->tuijian_nv_yihun))?$question_info->tuijian_nv_yihun:0;
$gaoduan_combo_new = (isset($question_info->gaoduan_nv_yihun) and !empty($question_info->gaoduan_nv_yihun))?$question_info->gaoduan_nv_yihun:0;
}
}
//获取套餐的项目 //获取套餐的项目
$jichu_items_ids = []; $jichu_items_ids = [];
if ($jichu_combo_new) { if ($jichu_combo_new) {
@ -252,12 +283,7 @@ class QuestionnairesLogsController extends Controller
'items' => $gaoduan_items_ids 'items' => $gaoduan_items_ids
], ],
]; ];
$question_ids = [];
$question_map = [];
foreach ($content as $key => $value) {
$question_ids[] = $value['id'];
$question_map["q{$value['id']}"] = $value;
}
if (!!count($question_ids)) { if (!!count($question_ids)) {
$question_questions = DB::table('question_questions')->whereIn('id', $question_ids)->get(); $question_questions = DB::table('question_questions')->whereIn('id', $question_ids)->get();
@ -301,6 +327,23 @@ class QuestionnairesLogsController extends Controller
foreach ($item_option['items'] as $item) { foreach ($item_option['items'] as $item) {
if (!in_array($item, $check_items)) { if (!in_array($item, $check_items)) {
$check_items_info = DB::table('question_items')->where('id', $item)->first(); $check_items_info = DB::table('question_items')->where('id', $item)->first();
if(strpos($content_sex, "男") !== false){
$check_items_info->jichu = $check_items_info->jichu_nan;
$check_items_info->tuijian = $check_items_info->tuijian_nan;
$check_items_info->gaoduan = $check_items_info->gaoduan_nan;
}
if(strpos($content_sex, "女")!== false){
if(strpos($content_hunyin, "未婚")!== false){
$check_items_info->jichu = $check_items_info->jichu_nv_weihun;
$check_items_info->tuijian = $check_items_info->tuijian_nv_weihun;
$check_items_info->gaoduan = $check_items_info->gaoduan_nv_weihun;
}
if(strpos($content_hunyin, "已婚")!== false){
$check_items_info->jichu = $check_items_info->jichu_nv_yihun;
$check_items_info->tuijian = $check_items_info->tuijian_nv_yihun;
$check_items_info->gaoduan = $check_items_info->gaoduan_nv_yihun;
}
}
if (!!$check_items_info) { if (!!$check_items_info) {
$check_items[] = (string)$item; $check_items[] = (string)$item;

@ -1,374 +1,428 @@
<script setup> <script setup>
/** /**
* name * name
* usersa0ChunLuyu * usersa0ChunLuyu
* date2024年10月12日 16:29:26 * date2024年10月12日 16:29:26
*/ */
import {ref, onMounted, computed} from 'vue'; import {
import $router from '@/router' ref,
import {onBeforeRouteUpdate} from "vue-router"; onMounted,
import {ElMessage, ElMessageBox} from 'element-plus' computed
import { } from 'vue';
QuestionCreateAction, import $router from '@/router'
QuestionUpdateAction, import {
QuestionDeleteAction, onBeforeRouteUpdate
QuestionListAction, } from "vue-router";
QuestionItemItemAction, import {
QuestionQuestionSelectAction, ElMessage,
ComboGetAllList ElMessageBox
} from '@/api/api.js' } from 'element-plus'
import {
QuestionCreateAction,
QuestionUpdateAction,
QuestionDeleteAction,
QuestionListAction,
QuestionItemItemAction,
QuestionQuestionSelectAction,
ComboGetAllList
} from '@/api/api.js'
const default_page_options = { const default_page_options = {
search: '', search: '',
type: '', type: '',
page: 1, page: 1,
} }
const page_options = ref(JSON.parse(JSON.stringify(default_page_options))) const page_options = ref(JSON.parse(JSON.stringify(default_page_options)))
onBeforeRouteUpdate((to) => { onBeforeRouteUpdate((to) => {
routerChange(to.query) routerChange(to.query)
}) })
const item_list = ref([]) const item_list = ref([])
const QuestionItemItem = async () => { const QuestionItemItem = async () => {
const response = await QuestionItemItemAction({}) const response = await QuestionItemItemAction({})
if (response.status !== 'no') { if (response.status !== 'no') {
item_list.value = response.data.list.map((item) => { item_list.value = response.data.list.map((item) => {
return { return {
...item, ...item,
name: item.sex !== 0 ? `${item.name}(${item.sex === 1 ? '男' : '女'})` : item.name name: item.sex !== 0 ? `${item.name}(${item.sex === 1 ? '男' : '女'})` : item.name
} }
}) })
} else { } else {
ElMessage.error(response.msg) ElMessage.error(response.msg)
} }
} }
const question_list = ref([]) const question_list = ref([])
const QuestionQuestionSelect = async () => { const QuestionQuestionSelect = async () => {
const response = await QuestionQuestionSelectAction({}) const response = await QuestionQuestionSelectAction({})
if (response.status !== 'no') { if (response.status !== 'no') {
question_list.value = response.data.list question_list.value = response.data.list
} else { } else {
ElMessage.error(response.msg) ElMessage.error(response.msg)
} }
} }
const table_list = ref([]) const table_list = ref([])
const last_page = ref(0) const last_page = ref(0)
const QuestionList = async () => { const QuestionList = async () => {
const response = await QuestionListAction(page_options.value) const response = await QuestionListAction(page_options.value)
if (response.status !== 'no') { if (response.status !== 'no') {
table_list.value = response.data.list.data.map((item) => { table_list.value = response.data.list.data.map((item) => {
return { return {
...item, ...item,
items: JSON.parse(item.items), items: JSON.parse(item.items),
questions: JSON.parse(item.questions) questions: JSON.parse(item.questions)
} }
}) })
last_page.value = response.data.list.last_page last_page.value = response.data.list.last_page
} else { } else {
ElMessage.error(response.msg) ElMessage.error(response.msg)
} }
} }
const routerChange = (query) => { const routerChange = (query) => {
page_options.value = { page_options.value = {
search: query.search || default_page_options.search, search: query.search || default_page_options.search,
type: query.type || default_page_options.type, type: query.type || default_page_options.type,
page: Number(query.page) || default_page_options.page, page: Number(query.page) || default_page_options.page,
} }
QuestionList() QuestionList()
} }
// //
let combolist=ref([]); let combolist = ref([]);
const GetCombolist = async () => { const GetCombolist = async () => {
const response = await ComboGetAllList({status:"enable"}) const response = await ComboGetAllList({
if (response.status) { status: "enable"
combolist.value=response.data.list })
} else { if (response.status) {
ElMessage.error(response.msg) combolist.value = response.data.list
} } else {
} ElMessage.error(response.msg)
const searchClick = (page = 1) => { }
page_options.value.page = page }
$router.push({ const searchClick = (page = 1) => {
query: JSON.parse(JSON.stringify(page_options.value)) page_options.value.page = page
}) $router.push({
} query: JSON.parse(JSON.stringify(page_options.value))
})
}
const itemNameShow = (items) => { const itemNameShow = (items) => {
let names = [] let names = []
for (let i in item_list.value) { for (let i in item_list.value) {
if (items.includes(String(item_list.value[i].item_id))) { if (items.includes(String(item_list.value[i].item_id))) {
names.push(item_list.value[i].name) names.push(item_list.value[i].name)
} }
} }
return names.join('、') return names.join('、')
} }
const edit_data_default = { const edit_data_default = {
id: 0, id: 0,
type: '问卷调查', type: '问卷调查',
name: '', name: '',
items: [], items: [],
questions: [] questions: []
} }
const edit_data = ref(JSON.parse(JSON.stringify(edit_data_default))) const edit_data = ref(JSON.parse(JSON.stringify(edit_data_default)))
const edit_show = ref(false) const edit_show = ref(false)
const createClick = () => { const createClick = () => {
updateClick(edit_data_default) updateClick(edit_data_default)
} }
const updateClick = (row) => { const updateClick = (row) => {
edit_data.value = JSON.parse(JSON.stringify(row)) edit_data.value = JSON.parse(JSON.stringify(row))
edit_show.value = true edit_show.value = true
} }
const editDoneClick = async () => { const editDoneClick = async () => {
const $func = edit_data.value.id !== 0 ? QuestionUpdateAction : QuestionCreateAction const $func = edit_data.value.id !== 0 ? QuestionUpdateAction : QuestionCreateAction
const response = await $func({ const response = await $func({
...edit_data.value, ...edit_data.value,
items: JSON.stringify(edit_data.value.items), items: JSON.stringify(edit_data.value.items),
questions: JSON.stringify(edit_data.value.questions), questions: JSON.stringify(edit_data.value.questions),
}) })
if (response.status !== 'no') { if (response.status !== 'no') {
edit_show.value = false edit_show.value = false
await QuestionList() await QuestionList()
} else { } else {
ElMessage.error(response.msg) ElMessage.error(response.msg)
} }
} }
const QuestionDelete = async (id) => { const QuestionDelete = async (id) => {
const response = await QuestionDeleteAction({id}) const response = await QuestionDeleteAction({
if (response.status !== 'no') { id
await QuestionList() })
} else { if (response.status !== 'no') {
ElMessage.error(response.msg) await QuestionList()
} } else {
} ElMessage.error(response.msg)
}
}
const deleteClick = (id) => { const deleteClick = (id) => {
ElMessageBox.confirm( ElMessageBox.confirm(
'是否确认删除该问卷?', '是否确认删除该问卷?',
'提示', '提示', {
{ confirmButtonText: '确认',
confirmButtonText: '确认', cancelButtonText: '取消',
cancelButtonText: '取消', type: 'warning',
type: 'warning', }
} ).then(() => {
).then(() => { QuestionDelete(id)
QuestionDelete(id) }).catch(() => {})
}).catch(() => { }
}) const edit_item_data = ref([])
} const edit_item_show = ref(false)
const edit_item_data = ref([]) const editItemClick = () => {
const edit_item_show = ref(false) edit_item_data.value = JSON.parse(JSON.stringify(edit_data.value.items))
const editItemClick = () => { edit_item_show.value = true
edit_item_data.value = JSON.parse(JSON.stringify(edit_data.value.items)) }
edit_item_show.value = true const editItemDoneClick = () => {
} edit_data.value.items = JSON.parse(JSON.stringify(edit_item_data.value))
const editItemDoneClick = () => { edit_item_show.value = false
edit_data.value.items = JSON.parse(JSON.stringify(edit_item_data.value)) }
edit_item_show.value = false const filterMethod = (query, item) => {
} return item.name.toLowerCase().includes(query.toLowerCase()) || item.pinyin.toLowerCase().includes(query
const filterMethod = (query, item) => { .toLowerCase())
return item.name.toLowerCase().includes(query.toLowerCase()) || item.pinyin.toLowerCase().includes(query.toLowerCase()) }
} const moveQuestionClick = (index, type) => {
const moveQuestionClick = (index, type) => { if (edit_data.value.questions.length - 1 >= index + type) {
if (edit_data.value.questions.length - 1 >= index + type) { const question = edit_data.value.questions[index]
const question = edit_data.value.questions[index] edit_data.value.questions[index] = JSON.parse(JSON.stringify(edit_data.value.questions[index + type]))
edit_data.value.questions[index] = JSON.parse(JSON.stringify(edit_data.value.questions[index + type])) edit_data.value.questions[index + type] = JSON.parse(JSON.stringify(question))
edit_data.value.questions[index + type] = JSON.parse(JSON.stringify(question)) }
} }
} const delQuestionClick = (index) => {
const delQuestionClick = (index) => { edit_data.value.questions.splice(index, 1)
edit_data.value.questions.splice(index, 1) }
}
const question_edit_list = computed(() => { const question_edit_list = computed(() => {
return edit_data.value.questions.map((item) => { return edit_data.value.questions.map((item) => {
return { return {
id: item, id: item,
question: question_list.value.find((i) => i.id === Number(item)).question question: question_list.value.find((i) => i.id === Number(item)).question
} }
}) })
}) })
const edit_question_active = ref(null) const edit_question_active = ref(null)
const addQuestionClick = () => { const addQuestionClick = () => {
if (edit_question_active.value) { if (edit_question_active.value) {
edit_data.value.questions.push(String(edit_question_active.value)) edit_data.value.questions.push(String(edit_question_active.value))
} }
} }
onMounted(() => { onMounted(() => {
routerChange($router.currentRoute.value.query) routerChange($router.currentRoute.value.query)
QuestionItemItem() QuestionItemItem()
QuestionQuestionSelect() QuestionQuestionSelect()
GetCombolist() GetCombolist()
}) })
</script> </script>
<template> <template>
<div> <div>
<el-dialog v-model="edit_item_show" title="关联项目管理" width="910px" <el-dialog v-model="edit_item_show" title="关联项目管理" width="910px" :close-on-click-modal="false"
:close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
:close-on-press-escape="false" <div>
:show-close="false"> <div class="eltransfer">
<div> <el-transfer :titles="['可选项目', '已选项目']" :props="{key: 'item_id', label: 'name'}"
<div class="eltransfer"> v-model="edit_item_data" filterable :filter-method="filterMethod" filter-placeholder="搜索"
<el-transfer :data="item_list" />
:titles="['可选项目', '已选项目']" </div>
:props="{key: 'item_id', label: 'name'}"
v-model="edit_item_data"
filterable
:filter-method="filterMethod"
filter-placeholder="搜索"
:data="item_list"
/>
</div>
</div>
<template #footer>
<div class="dialog-footer">
<el-button @click="editItemDoneClick()" type="primary">确定</el-button>
</div>
</template>
</el-dialog>
<el-dialog v-model="edit_show" title="题目配置" width="1000px"> </div>
<div> <template #footer>
<el-form label-width="150"> <div class="dialog-footer">
<el-form-item label="问卷名称"> <el-button @click="editItemDoneClick()" type="primary">确定</el-button>
<el-input v-model="edit_data.name" placeholder="请输入问卷名称"></el-input> </div>
</el-form-item> </template>
<el-form-item label="问卷类型"> </el-dialog>
<el-select v-model="edit_data.type" placeholder="请选择问卷类型">
<el-option label="检前评估" value="检前评估"></el-option> <el-dialog v-model="edit_show" title="题目配置" width="1000px">
<el-option label="问卷调查" value="问卷调查"></el-option> <div>
</el-select> <el-form label-width="150">
</el-form-item> <el-form-item label="问卷名称">
<el-form-item label="基础项目"> <el-input v-model="edit_data.name" placeholder="请输入问卷名称"></el-input>
<span style="margin-right: 10px;">{{ edit_data.items.length }} 个关联项目</span> </el-form-item>
<el-button type="primary" size="small" @click="editItemClick()"></el-button> <el-form-item label="问卷类型">
</el-form-item> <el-select v-model="edit_data.type" placeholder="请选择问卷类型">
<el-form-item label="基础"> <el-option label="检前评估" value="检前评估"></el-option>
<el-select v-model="edit_data.jichu_combo" <el-option label="问卷调查" value="问卷调查"></el-option>
placeholder="选择套餐"> </el-select>
<el-option v-for="(item,index) in combolist" :key="index" :label="item.name" :value="item.combo_id" ></el-option> </el-form-item>
</el-select> <el-form-item label="基础项目">
</el-form-item> <span style="margin-right: 10px;">{{ edit_data.items.length }} 个关联项目</span>
<el-form-item label="推荐"> <el-button type="primary" size="small" @click="editItemClick()"></el-button>
<el-select v-model="edit_data.tuijian_combo" </el-form-item>
placeholder="选择套餐"> <el-form-item label="基础">
<el-option v-for="(item,index) in combolist" :key="index" :label="item.name" :value="item.combo_id" ></el-option> <el-form label-width="100px">
</el-select> <el-form-item label=" 男">
</el-form-item> <el-select v-model="edit_data.jichu_nan" placeholder="选择套餐">
<el-form-item label="高端"> <el-option v-for="(item,index) in combolist" :key="index" :label="item.name"
<el-select v-model="edit_data.gaoduan_combo" :value="item.combo_id"></el-option>
placeholder="选择套餐"> </el-select>
<el-option v-for="(item,index) in combolist" :key="index" :label="item.name" :value="item.combo_id" ></el-option> </el-form-item>
</el-select> <el-form-item label=" 女未婚">
</el-form-item> <el-select v-model="edit_data.jichu_nv_weihun" placeholder="选择套餐">
<el-form-item label="题目"> <el-option v-for="(item,index) in combolist" :key="index" :label="item.name"
<div class="question_edit_title_wrapper"> :value="item.combo_id"></el-option>
<el-select style="width: 300px;margin-right: 10px;" v-model="edit_question_active" </el-select>
placeholder="请选择题目"> </el-form-item>
<el-option v-for="(i,k) in question_list" :key="k" :label="i.question" :value="i.id"></el-option> <el-form-item label=" 女已婚">
</el-select> <el-select v-model="edit_data.jichu_nv_yihun" placeholder="选择套餐">
<el-button type="primary" size="small" @click="addQuestionClick()"></el-button> <el-option v-for="(item,index) in combolist" :key="index" :label="item.name"
</div> :value="item.combo_id"></el-option>
<el-table :data="question_edit_list" style="width: 100%;" row-key="id" :tooltip-options="{ </el-select>
</el-form-item>
</el-form>
</el-form-item>
<el-form-item label="推荐">
<el-form label-width="100px">
<el-form-item label=" 男">
<el-select v-model="edit_data.tuijian_nan" placeholder="选择套餐">
<el-option v-for="(item,index) in combolist" :key="index" :label="item.name"
:value="item.combo_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label=" 女未婚">
<el-select v-model="edit_data.tuijian_nv_weihun" placeholder="选择套餐">
<el-option v-for="(item,index) in combolist" :key="index" :label="item.name"
:value="item.combo_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label=" 女已婚">
<el-select v-model="edit_data.tuijian_nv_yihun" placeholder="选择套餐">
<el-option v-for="(item,index) in combolist" :key="index" :label="item.name"
:value="item.combo_id"></el-option>
</el-select>
</el-form-item>
</el-form>
</el-form-item>
<el-form-item label="高端">
<el-form label-width="100px">
<el-form-item label=" 男">
<el-select v-model="edit_data.gaoduan_nan" placeholder="选择套餐">
<el-option v-for="(item,index) in combolist" :key="index" :label="item.name"
:value="item.combo_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label=" 女未婚">
<el-select v-model="edit_data.gaoduan_nv_weihun" placeholder="选择套餐">
<el-option v-for="(item,index) in combolist" :key="index" :label="item.name"
:value="item.combo_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label=" 女已婚">
<el-select v-model="edit_data.gaoduan_nv_yihun" placeholder="选择套餐">
<el-option v-for="(item,index) in combolist" :key="index" :label="item.name"
:value="item.combo_id"></el-option>
</el-select>
</el-form-item>
</el-form>
</el-form-item>
<el-form-item label="题目">
<div class="question_edit_title_wrapper">
<el-select style="width: 300px;margin-right: 10px;" v-model="edit_question_active"
placeholder="请选择题目">
<el-option v-for="(i,k) in question_list" :key="k" :label="i.question"
:value="i.id"></el-option>
</el-select>
<el-button type="primary" size="small" @click="addQuestionClick()"></el-button>
</div>
<el-table :data="question_edit_list" style="width: 100%;" row-key="id" :tooltip-options="{
popperClass: 'popper_class_wrapper' popperClass: 'popper_class_wrapper'
}"> }">
<el-table-column prop="id" label="ID" width="100"/> <el-table-column prop="id" label="ID" width="100" />
<el-table-column prop="question" label="题目" show-overflow-tooltip/> <el-table-column prop="question" label="题目" show-overflow-tooltip />
<el-table-column label="操作" width="140"> <el-table-column label="操作" width="140">
<template #default="scope"> <template #default="scope">
<el-button :disabled="scope.$index===0" type="primary" size="small" <el-button :disabled="scope.$index===0" type="primary" size="small"
@click="moveQuestionClick(scope.$index, -1)"> @click="moveQuestionClick(scope.$index, -1)">
</el-button> </el-button>
<el-button :disabled="scope.$index===edit_data.questions.length - 1" type="primary" size="small" <el-button :disabled="scope.$index===edit_data.questions.length - 1" type="primary"
@click="moveQuestionClick(scope.$index, 1)"> size="small" @click="moveQuestionClick(scope.$index, 1)">
</el-button> </el-button>
<el-button :disabled="edit_data.questions.length === 1" type="primary" size="small" <el-button :disabled="edit_data.questions.length === 1" type="primary" size="small"
@click="delQuestionClick(scope.$index)">X @click="delQuestionClick(scope.$index)">X
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="edit_show = false">取消</el-button> <el-button @click="edit_show = false">取消</el-button>
<el-button type="primary" @click="editDoneClick()"></el-button> <el-button type="primary" @click="editDoneClick()"></el-button>
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
<div class="head"> <div class="head">
<div class="head"> <div class="head">
<el-row> <el-row>
<el-form-item label="问卷类型"> <el-form-item label="问卷类型">
<el-select :empty-values="[undefined, null]" style="width: 120px;" v-model="page_options.type" <el-select :empty-values="[undefined, null]" style="width: 120px;" v-model="page_options.type"
placeholder="请选择问卷类型"> placeholder="请选择问卷类型">
<el-option label="全部" value=""></el-option> <el-option label="全部" value=""></el-option>
<el-option label="检前评估" value="检前评估"></el-option> <el-option label="检前评估" value="检前评估"></el-option>
<el-option label="问卷调查" value="问卷调查"></el-option> <el-option label="问卷调查" value="问卷调查"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item style="margin-left: 10px;"> <el-form-item style="margin-left: 10px;">
<el-input v-model="page_options.search" placeholder="搜索项目名称"/> <el-input v-model="page_options.search" placeholder="搜索项目名称" />
</el-form-item> </el-form-item>
<el-button type="primary" @click="searchClick()" style="margin-left: 10px;">查询</el-button> <el-button type="primary" @click="searchClick()" style="margin-left: 10px;">查询</el-button>
<el-button type="success" @click="createClick()" style="margin-left: 10px;">添加</el-button> <el-button type="success" @click="createClick()" style="margin-left: 10px;">添加</el-button>
</el-row> </el-row>
</div> </div>
</div> </div>
<el-table :data="table_list" style="width: 100%;" row-key="id" :tooltip-options="{ <el-table :data="table_list" style="width: 100%;" row-key="id" :tooltip-options="{
popperClass: 'popper_class_wrapper' popperClass: 'popper_class_wrapper'
}"> }">
<el-table-column prop="id" label="ID" width="100"/> <el-table-column prop="id" label="ID" width="100" />
<el-table-column prop="name" label="问卷名称" width="200"/> <el-table-column prop="name" label="问卷名称" width="200" />
<el-table-column prop="type" label="问卷类型" width="120"/> <el-table-column prop="type" label="问卷类型" width="120" />
<el-table-column label="基础项目" show-overflow-tooltip> <el-table-column label="基础项目" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
{{ itemNameShow(scope.row.items) }} {{ itemNameShow(scope.row.items) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="题目" width="60"> <el-table-column label="题目" width="60">
<template #default="scope"> <template #default="scope">
{{ scope.row.questions.length }} {{ scope.row.questions.length }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="140"> <el-table-column label="操作" width="140">
<template #default="scope"> <template #default="scope">
<el-button type="primary" @click="updateClick(scope.row)" size="small">修改</el-button> <el-button type="primary" @click="updateClick(scope.row)" size="small">修改</el-button>
<el-button type="danger" @click="deleteClick(scope.row.id)" size="small">删除</el-button> <el-button type="danger" @click="deleteClick(scope.row.id)" size="small">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="page"> <div class="page">
<el-pagination v-if="last_page > 0" :current-page="page_options.page" mt-2 background layout="prev, pager, next" <el-pagination v-if="last_page > 0" :current-page="page_options.page" mt-2 background
:page-count="last_page" @update:current-page="searchClick"/> layout="prev, pager, next" :page-count="last_page" @update:current-page="searchClick" />
</div> </div>
</div> </div>
</template> </template>
<style> <style>
.popper_class_wrapper { .popper_class_wrapper {
width: 300px; width: 300px;
} }
</style> </style>
<style scoped> <style scoped>
.question_edit_title_wrapper { .question_edit_title_wrapper {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 5px; margin-bottom: 5px;
} }
.page { .page {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
margin-top: 10px; margin-top: 10px;
} }
.eltransfer >>> .el-transfer-panel{
width: 350px; .eltransfer>>>.el-transfer-panel {
} width: 350px;
</style> }
</style>

@ -111,7 +111,7 @@ const deleteClick = (id) => {
.catch(() => {}) .catch(() => {})
} }
const comboNameShow = (combo_id) => { const comboNameShow = (combo_id) => {
if (Number(combo_id) === 0) return '无关联套餐' if (Number(combo_id) === 0) return '-'
return combo_list.value.find((i) => i.combo_id == combo_id)?.name return combo_list.value.find((i) => i.combo_id == combo_id)?.name
} }
@ -131,7 +131,7 @@ onMounted(() => {
<el-form-item label="项目说明"> <el-form-item label="项目说明">
<el-input v-model="edit_data.desc" placeholder="请输入项目说明"></el-input> <el-input v-model="edit_data.desc" placeholder="请输入项目说明"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="基础项目"> <!-- <el-form-item label="基础项目">
<el-select filterable v-model="edit_data.jichu" placeholder="请选择"> <el-select filterable v-model="edit_data.jichu" placeholder="请选择">
<el-option <el-option
v-for="(i, k) in [{ combo_id: '0', name: '暂不关联' }, ...combo_list]" v-for="(i, k) in [{ combo_id: '0', name: '暂不关联' }, ...combo_list]"
@ -160,7 +160,73 @@ onMounted(() => {
:value="i.combo_id" :value="i.combo_id"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item label="基础">
<el-form label-width="100px">
<el-form-item label=" 男">
<el-select v-model="edit_data.jichu_nan" placeholder="选择套餐">
<el-option v-for="(item,index) in combo_list" :key="index" :label="item.name"
:value="item.combo_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label=" 女未婚">
<el-select v-model="edit_data.jichu_nv_weihun" placeholder="选择套餐">
<el-option v-for="(item,index) in combo_list" :key="index" :label="item.name"
:value="item.combo_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label=" 女已婚">
<el-select v-model="edit_data.jichu_nv_yihun" placeholder="选择套餐">
<el-option v-for="(item,index) in combo_list" :key="index" :label="item.name"
:value="item.combo_id"></el-option>
</el-select>
</el-form-item>
</el-form>
</el-form-item>
<el-form-item label="推荐">
<el-form label-width="100px">
<el-form-item label=" 男">
<el-select v-model="edit_data.tuijian_nan" placeholder="选择套餐">
<el-option v-for="(item,index) in combo_list" :key="index" :label="item.name"
:value="item.combo_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label=" 女未婚">
<el-select v-model="edit_data.tuijian_nv_weihun" placeholder="选择套餐">
<el-option v-for="(item,index) in combo_list" :key="index" :label="item.name"
:value="item.combo_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label=" 女已婚">
<el-select v-model="edit_data.tuijian_nv_yihun" placeholder="选择套餐">
<el-option v-for="(item,index) in combo_list" :key="index" :label="item.name"
:value="item.combo_id"></el-option>
</el-select>
</el-form-item>
</el-form>
</el-form-item>
<el-form-item label="高端">
<el-form label-width="100px">
<el-form-item label=" 男">
<el-select v-model="edit_data.gaoduan_nan" placeholder="选择套餐">
<el-option v-for="(item,index) in combolist" :key="index" :label="item.name"
:value="item.combo_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label=" 女未婚">
<el-select v-model="edit_data.gaoduan_nv_weihun" placeholder="选择套餐">
<el-option v-for="(item,index) in combolist" :key="index" :label="item.name"
:value="item.combo_id"></el-option>
</el-select>
</el-form-item>
<el-form-item label=" 女已婚">
<el-select v-model="edit_data.gaoduan_nv_yihun" placeholder="选择套餐">
<el-option v-for="(item,index) in combolist" :key="index" :label="item.name"
:value="item.combo_id"></el-option>
</el-select>
</el-form-item>
</el-form>
</el-form-item>
</el-form> </el-form>
</div> </div>
<template #footer> <template #footer>
@ -197,7 +263,7 @@ onMounted(() => {
<el-table-column prop="id" label="ID" width="100" /> <el-table-column prop="id" label="ID" width="100" />
<el-table-column prop="name" label="项目名称" width="200" /> <el-table-column prop="name" label="项目名称" width="200" />
<el-table-column prop="desc" label="项目说明" show-overflow-tooltip /> <el-table-column prop="desc" label="项目说明" show-overflow-tooltip />
<el-table-column label="基础项目" show-overflow-tooltip> <!-- <el-table-column label="基础" show-overflow-tooltip>
<template #default="scope"> <template #default="scope">
{{ comboNameShow(scope.row.jichu) }} {{ comboNameShow(scope.row.jichu) }}
</template> </template>
@ -211,7 +277,52 @@ onMounted(() => {
<template #default="scope"> <template #default="scope">
{{ comboNameShow(scope.row.gaoduan) }} {{ comboNameShow(scope.row.gaoduan) }}
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column label="基础男" show-overflow-tooltip>
<template #default="scope">
{{ comboNameShow(scope.row.jichu_nan) }}
</template>
</el-table-column>
<el-table-column label="基础女未婚" show-overflow-tooltip>
<template #default="scope">
{{ comboNameShow(scope.row.jichu_nv_weihun) }}
</template>
</el-table-column>
<el-table-column label="基础女已婚" show-overflow-tooltip>
<template #default="scope">
{{ comboNameShow(scope.row.jichu_nv_yihun) }}
</template>
</el-table-column>
<el-table-column label="推荐男" show-overflow-tooltip>
<template #default="scope">
{{ comboNameShow(scope.row.tuijian_nan) }}
</template>
</el-table-column>
<el-table-column label="推荐女未婚" show-overflow-tooltip>
<template #default="scope">
{{ comboNameShow(scope.row.tuijian_nv_weihun) }}
</template>
</el-table-column>
<el-table-column label="推荐女已婚" show-overflow-tooltip>
<template #default="scope">
{{ comboNameShow(scope.row.tuijian_nv_yihun) }}
</template>
</el-table-column>
<el-table-column label="高端男" show-overflow-tooltip>
<template #default="scope">
{{ comboNameShow(scope.row.gaoduan_nan) }}
</template>
</el-table-column>
<el-table-column label="高端女未婚" show-overflow-tooltip>
<template #default="scope">
{{ comboNameShow(scope.row.gaoduan_nv_weihun) }}
</template>
</el-table-column>
<el-table-column label="高端女已婚" show-overflow-tooltip>
<template #default="scope">
{{ comboNameShow(scope.row.gaoduan_nv_yihun) }}
</template>
</el-table-column>
<el-table-column label="操作" width="140"> <el-table-column label="操作" width="140">
<template #default="scope"> <template #default="scope">
<el-button type="primary" @click="updateClick(scope.row)" size="small">修改</el-button> <el-button type="primary" @click="updateClick(scope.row)" size="small">修改</el-button>

@ -1,7 +1,7 @@
const app_type = 'gzh' const app_type = 'gzh'
//const base_url = "https://api.hainan2024.sa0.online" //开发环境 //const base_url = "https://api.hainan2024.sa0.online" //开发环境
const base_url="https://tj-h5.hnxdfe.com" //正式环境 //const base_url="https://tj-h5.hnxdfe.com" //正式环境
//const base_url="http://124.225.137.54:39081" //测试环境 const base_url="http://124.225.137.54:39081" //测试环境
const config = { const config = {
api_map_url: base_url + '/api/ApiMap/h5', api_map_url: base_url + '/api/ApiMap/h5',
base_assets_url: base_url, base_assets_url: base_url,

Loading…
Cancel
Save