问卷调整

main
yanzai 9 months ago
parent 684726c7bd
commit 72700c0702

@ -34,6 +34,15 @@ class QuestionItemController extends Controller
$jichu = $request->post('jichu');
$tuijian = $request->post('tuijian');
$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) {
return \Yz::echoError('请填写项目名称');
}
@ -49,6 +58,15 @@ class QuestionItemController extends Controller
'jichu' => $jichu ?? '[]',
'tuijian' => $tuijian ?? '[]',
'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'),
'updated_at' => date('Y-m-d H:i:s'),
]);
@ -63,6 +81,15 @@ class QuestionItemController extends Controller
$jichu = $request->post('jichu');
$tuijian = $request->post('tuijian');
$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) {
return \Yz::echoError('请填写项目名称');
}
@ -78,6 +105,15 @@ class QuestionItemController extends Controller
'jichu' => $jichu ?? '[]',
'tuijian' => $tuijian ?? '[]',
'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'),
]);
return \Yz::Return(true, '操作完成');

@ -14,9 +14,16 @@ class QuestionnaireController extends Controller
$name = $request->post('name');
$items = $request->post('items');
$questions = $request->post('questions');
$jichu_combo_id = $request->post('jichu_combo');
$tuijian_combo_id = $request->post('tuijian_combo');
$gaoduan_combo_id = $request->post('gaoduan_combo');
$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) {
return \Yz::echoError('请填写问卷名称');
}
@ -31,9 +38,15 @@ class QuestionnaireController extends Controller
'type' => $type,
'name' => $name,
'items' => $items ?? '[]',
'jichu_combo' => $jichu_combo_id,
'tuijian_combo' => $tuijian_combo_id,
'gaoduan_combo' => $gaoduan_combo_id,
'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,
'questions' => $questions ?? '[]',
'created_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');
$name = $request->post('name');
$items = $request->post('items');
$jichu_combo_id = $request->post('jichu_combo');
$tuijian_combo_id = $request->post('tuijian_combo');
$gaoduan_combo_id = $request->post('gaoduan_combo');
$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');
$questions = $request->post('questions');
if (!$name) {
@ -66,9 +85,15 @@ class QuestionnaireController extends Controller
'type' => $type,
'name' => $name,
'items' => $items ?? '[]',
'jichu_combo' => $jichu_combo_id,
'tuijian_combo' => $tuijian_combo_id,
'gaoduan_combo' => $gaoduan_combo_id,
'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,
'questions' => $questions ?? '[]',
'updated_at' => date('Y-m-d H:i:s'),
]);

@ -202,12 +202,43 @@ class QuestionnairesLogsController extends Controller
if (!$person_info) {
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;
$items = json_decode($question_info->items, true);
//获取绑定套餐的id
$jichu_combo_new = (isset($question_info->jichu_combo) and !empty($question_info->jichu_combo))?$question_info->jichu_combo:0;
$tuijian_combo_new = (isset($question_info->tuijian_combo) and !empty($question_info->tuijian_combo))?$question_info->tuijian_combo:0;
$gaoduan_combo_new = (isset($question_info->gaoduan_combo) and !empty($question_info->gaoduan_combo))?$question_info->gaoduan_combo:0;
if(strpos($content_sex, "男") !== false){
$jichu_combo_new = (isset($question_info->jichu_nan) and !empty($question_info->jichu_nan))?$question_info->jichu_nan: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 = [];
if ($jichu_combo_new) {
@ -252,12 +283,7 @@ class QuestionnairesLogsController extends Controller
'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)) {
$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) {
if (!in_array($item, $check_items)) {
$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) {
$check_items[] = (string)$item;

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

@ -111,7 +111,7 @@ const deleteClick = (id) => {
.catch(() => {})
}
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
}
@ -131,7 +131,7 @@ onMounted(() => {
<el-form-item label="项目说明">
<el-input v-model="edit_data.desc" placeholder="请输入项目说明"></el-input>
</el-form-item>
<el-form-item label="基础项目">
<!-- <el-form-item label="基础项目">
<el-select filterable v-model="edit_data.jichu" placeholder="请选择">
<el-option
v-for="(i, k) in [{ combo_id: '0', name: '暂不关联' }, ...combo_list]"
@ -160,7 +160,73 @@ onMounted(() => {
:value="i.combo_id"
/>
</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>
</div>
<template #footer>
@ -197,7 +263,7 @@ onMounted(() => {
<el-table-column prop="id" label="ID" width="100" />
<el-table-column prop="name" label="项目名称" width="200" />
<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">
{{ comboNameShow(scope.row.jichu) }}
</template>
@ -211,7 +277,52 @@ onMounted(() => {
<template #default="scope">
{{ comboNameShow(scope.row.gaoduan) }}
</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">
<template #default="scope">
<el-button type="primary" @click="updateClick(scope.row)" size="small">修改</el-button>

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

Loading…
Cancel
Save