更新 后台 健康问卷

main
鹿和sa0ChunLuyu 1 year ago
parent 2fe6a0ac8c
commit 22b4bef7a3

@ -0,0 +1,104 @@
<?php
namespace App\Http\Controllers\API\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class QuestionListController extends Controller
{
public function create(Request $request)
{
$name = $request->post('name');
$desc = $request->post('desc');
$icon = $request->post('icon');
$order = $request->post('order');
$question = $request->post('question');
if (!$question) {
return \Yz::echoError('请选择问卷');
}
if (!$name) {
return \Yz::echoError('请填写名称');
}
if (mb_strlen($name) > 20) {
return \Yz::echoError('名称过长');
}
if (mb_strlen($desc) > 200) {
return \Yz::echoError('说明过长');
}
if (!$icon) {
return \Yz::echoError('请上传图片');
}
if (mb_strlen($icon) > 200) {
return \Yz::echoError('图片链接过长');
}
DB::table('question_lists')->insert([
'name' => $name,
'desc' => $desc ?? '',
'icon' => $icon,
'order' => $order ?? 0,
'question' => $question ?? 0,
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'),
]);
return \Yz::Return(true, '操作完成');
}
public function update(Request $request)
{
$id = $request->post('id');
$name = $request->post('name');
$desc = $request->post('desc');
$icon = $request->post('icon');
$order = $request->post('order');
$question = $request->post('question');
if (!$question) {
return \Yz::echoError('请选择问卷');
}
if (!$name) {
return \Yz::echoError('请填写名称');
}
if (mb_strlen($name) > 20) {
return \Yz::echoError('名称过长');
}
if (mb_strlen($desc) > 200) {
return \Yz::echoError('说明过长');
}
if (!$icon) {
return \Yz::echoError('请上传图片');
}
if (mb_strlen($icon) > 200) {
return \Yz::echoError('图片链接过长');
}
DB::table('question_lists')->where('id', $id)->update([
'name' => $name,
'desc' => $desc ?? '',
'icon' => $icon,
'order' => $order ?? 0,
'question' => $question ?? 0,
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s'),
]);
return \Yz::Return(true, '操作完成');
}
public function delete(Request $request)
{
$id = $request->post('id');
DB::table('question_lists')->where('id', $id)->delete();
return \Yz::Return(true, '操作完成');
}
public function list(Request $request)
{
$search = $request->post('search');
$db = DB::table('question_lists');
if (!!$search) {
$db->where('name', 'like', "%$search%");
}
$list = $db->orderBy('order', 'desc')->get();
return \Yz::Return(true, '操作完成', [
'list' => $list
]);
}
}

@ -85,4 +85,13 @@ class QuestionnaireController extends Controller
'list' => $list
]);
}
public function select(Request $request)
{
$db = DB::table('questionnaires');
$list = $db->select(['id', 'name'])->where('type', '问卷调查')->orderBy('id', 'desc')->get();
return \Yz::Return(true, '操作完成', [
'list' => $list
]);
}
}

@ -10,23 +10,17 @@ class QuestionnaireController extends Controller
{
public function list(Request $request)
{
$list = [[
'id' => 3,
'title' => '健康问卷完整版',
'icon' => '/assets/h5/question1.png',
'desc' => '共20道题约3分钟',
], [
'id' => 3,
'title' => '健康问卷简易版',
'icon' => '/assets/h5/question1.png',
'desc' => '共10道题约1分钟',
], [
'id' => 3,
'title' => '心理健康评估问卷',
'icon' => '/assets/h5/question2.png',
'desc' => '共15道题约2分钟',
]];
$db = DB::table('question_lists');
$question = $db->orderBy('order', 'desc')->get();
$list = [];
foreach ($question as $key => $value) {
$list[] = [
'id' => $value->id,
'title' => $value->name,
'icon' => $value->icon,
'desc' => $value->desc,
];
}
return \Yz::Return(true, '操作完成', [
'list' => $list
]);

@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class QuestionList extends Model
{
use HasFactory;
}

@ -0,0 +1,36 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateQuestionListsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('question_lists', function (Blueprint $table) {
$table->id();
$table->string('name', 50);
$table->string('desc', 200);
$table->string('icon', 200);
$table->bigInteger('order');
$table->bigInteger('question');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('question_lists');
}
}

@ -24,10 +24,16 @@ Route::post('/tokenRefresh', 'App\Http\Controllers\API\TokenController@TokenRefr
Route::group(['middleware' => ['checktoken', 'log'], 'prefix' => 'v1'], function () { //路由分组
// 问卷调查 开始
Route::post('admin/questionList/create', 'App\Http\Controllers\API\Admin\QuestionListController@create');
Route::post('admin/questionList/update', 'App\Http\Controllers\API\Admin\QuestionListController@update');
Route::post('admin/questionList/delete', 'App\Http\Controllers\API\Admin\QuestionListController@delete');
Route::post('admin/questionList/list', 'App\Http\Controllers\API\Admin\QuestionListController@list');
Route::post('admin/question/create', 'App\Http\Controllers\API\Admin\QuestionnaireController@create');
Route::post('admin/question/update', 'App\Http\Controllers\API\Admin\QuestionnaireController@update');
Route::post('admin/question/delete', 'App\Http\Controllers\API\Admin\QuestionnaireController@delete');
Route::post('admin/question/list', 'App\Http\Controllers\API\Admin\QuestionnaireController@list');
Route::post('admin/question/select', 'App\Http\Controllers\API\Admin\QuestionnaireController@select');
Route::post('admin/questionQuestion/select', 'App\Http\Controllers\API\Admin\QuestionQuestionController@select');
Route::post('admin/questionQuestion/create', 'App\Http\Controllers\API\Admin\QuestionQuestionController@create');

@ -1,322 +1,363 @@
import axios from "@/tools/axios.js";
import axios from '@/tools/axios.js'
//登录
export const Login = (data) => {
return axios({url:import.meta.env.VITE_APP_API+'admin/login',data:data})
export const Login = (data) => {
return axios({ url: import.meta.env.VITE_APP_API + 'admin/login', data: data })
}
//admin后台获取当前用户菜单
export const GetAdminBaseMenuList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/getBaseMenuList',data:data})
export const GetAdminBaseMenuList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/getBaseMenuList', data: data })
}
//Token刷新
export const TokenRefresh = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'tokenRefresh',data:data})
export const TokenRefresh = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'tokenRefresh', data: data })
}
//获取admin后台用户list
export const getAdminUserList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/getUserList',data:data})
export const getAdminUserList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/getUserList', data: data })
}
//admin后台获取所有菜单列表
export const GetAdminMenuList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/getMenuList',data:data})
export const GetAdminMenuList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/getMenuList', data: data })
}
//admin后台获取一级菜单
export const GetFatherMenuList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/GetFatherMenuList',data:data})
export const GetFatherMenuList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/GetFatherMenuList', data: data })
}
//admin后台添加菜单
export const AddMenu = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/AddMenu',data:data})
export const AddMenu = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/AddMenu', data: data })
}
//admin后台编辑菜单
export const EditMenu = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/EditMenu',data:data})
export const EditMenu = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/EditMenu', data: data })
}
//admin后台组列表
export const getGroupList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/getGroupList',data:data})
export const getGroupList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/getGroupList', data: data })
}
//admin后台修改组菜单
export const GroupChangeMenu = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/GroupChangeMenu',data:data})
export const GroupChangeMenu = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/GroupChangeMenu', data: data })
}
//admin后台添加组
export const SaveGroup = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/SaveGroup',data:data})
export const SaveGroup = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/SaveGroup', data: data })
}
//admin后台保存用户信息
export const SaveSystemUserInfo = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/SaveSystemUserInfo',data:data})
export const SaveSystemUserInfo = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/SaveSystemUserInfo', data: data })
}
//admin后台获取用户详细信息
export const GetSystemUserDetail = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/GetSystemUserDetail',data:data})
export const GetSystemUserDetail = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/GetSystemUserDetail', data: data })
}
//admin后台修改密码
export const adminChangePwd = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/adminChangePwd',data:data})
export const adminChangePwd = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/adminChangePwd', data: data })
}
//admin后台获取登录用户基本信息
export const GetBaseAdminUserInfo = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/GetBaseUserInfo',data:data})
export const GetBaseAdminUserInfo = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/GetBaseUserInfo', data: data })
}
//admin后台管理员查询分组使用的菜单
export const AdminGetGroupMenuList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/GetGroupMenuList',data:data})
export const AdminGetGroupMenuList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/GetGroupMenuList', data: data })
}
//admin后台创建体检日历
export const CreateCalendar = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/CreateCalendar',data:data})
export const CreateCalendar = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/CreateCalendar', data: data })
}
//admin后台获取日历列表
export const CalendarGetList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/CalendarGetList',data:data})
export const CalendarGetList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/CalendarGetList', data: data })
}
//admin后台删除日历列表
export const CalendarDel = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/CalendarListDel',data:data})
export const CalendarDel = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/CalendarListDel', data: data })
}
//admin后台更新日历
export const CalendarChangeInfo = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/CalendarChangeInfo',data:data})
export const CalendarChangeInfo = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/CalendarChangeInfo', data: data })
}
//admin后台更新日历
export const CheckMenuAuth = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/CheckMenuAuth',data:data})
export const CheckMenuAuth = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/CheckMenuAuth', data: data })
}
//上传图片
// export const UpFile = (data={}) => {
// return axios({url:import.meta.env.VITE_APP_API+'v1/UpFile',data:data})
// }
export const UpFileUrl= () => {
return import.meta.env.VITE_APP_API+'v1/UpFile'
export const UpFileUrl = () => {
return import.meta.env.VITE_APP_API + 'v1/UpFile'
}
//admin后台修改自身用户信息
export const ChangInfo = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ChangInfo',data:data})
export const ChangInfo = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ChangInfo', data: data })
}
//admin后台获取站点配置信息
export const GetConfigInfo = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/GetConfigInfo',data:data})
export const GetConfigInfo = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/GetConfigInfo', data: data })
}
//admin后台保存站点配置信息
export const SaveConfigInfo = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/SaveConfigInfo',data:data})
export const SaveConfigInfo = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/SaveConfigInfo', data: data })
}
//获取日志列表
export const SystemLogGetList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/SystemLogGetList',data:data})
export const SystemLogGetList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/SystemLogGetList', data: data })
}
//获取日志表名
export const GetLogTableName = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/GetLogTableName',data:data})
export const GetLogTableName = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/GetLogTableName', data: data })
}
//获取号源类型列表
export const PlanTypeGetList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/PlanTypeGetList',data:data})
export const PlanTypeGetList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/PlanTypeGetList', data: data })
}
//可用体检类型列表
export const CheckUpTypeGetEnableList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/CheckUpTypeGetEnableList',data:data})
export const CheckUpTypeGetEnableList = (data = {}) => {
return axios({
url: import.meta.env.VITE_APP_API + 'v1/admin/CheckUpTypeGetEnableList',
data: data
})
}
//号源类型保存
export const PlanTypeSave = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/PlanTypeSave',data:data})
export const PlanTypeSave = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/PlanTypeSave', data: data })
}
//号源类型详情
export const PlanTypeGetDetail = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/PlanTypeGetDetail',data:data})
export const PlanTypeGetDetail = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/PlanTypeGetDetail', data: data })
}
//删除号源类型
export const PlanTypeDel = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/PlanTypeDel',data:data})
export const PlanTypeDel = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/PlanTypeDel', data: data })
}
//号源模板获取时间段列表
export const PlanModelTimeList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/PlanModelTimeList',data:data})
export const PlanModelTimeList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/PlanModelTimeList', data: data })
}
//保存号源模板
export const PlanModelSave = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/PlanModelSave',data:data})
export const PlanModelSave = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/PlanModelSave', data: data })
}
//号源模板列表
export const PlanModelGetList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/PlanModelGetList',data:data})
export const PlanModelGetList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/PlanModelGetList', data: data })
}
//号源模板详情
export const PlanModelGetDetail = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/PlanModelGetDetail',data:data})
export const PlanModelGetDetail = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/PlanModelGetDetail', data: data })
}
//删除号源模板
export const PlanModelDel = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/PlanModelDel',data:data})
export const PlanModelDel = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/PlanModelDel', data: data })
}
//生成号源
export const PlanCreate = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/CreatePlan',data:data})
export const PlanCreate = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/CreatePlan', data: data })
}
//号源列表
export const PlanGetList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/PlanGetList',data:data})
export const PlanGetList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/PlanGetList', data: data })
}
//号源详情
export const PlanGetDetail = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/PlanGetDetail',data:data})
export const PlanGetDetail = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/PlanGetDetail', data: data })
}
//号源详情
export const PlanSave = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/PlanSave',data:data})
export const PlanSave = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/PlanSave', data: data })
}
//获取套餐列表
export const ComboGetList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ComboGetList',data:data})
export const ComboGetList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ComboGetList', data: data })
}
//获取套餐详情
export const ComboGetDetail = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ComboGetDetail',data:data})
export const ComboGetDetail = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ComboGetDetail', data: data })
}
//保存套餐详情
export const ComboSave = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ComboSave',data:data})
export const ComboSave = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ComboSave', data: data })
}
//保存医院信息
export const HospitalSave = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/HospitalSave',data:data})
export const HospitalSave = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/HospitalSave', data: data })
}
//获取医院列表
export const HospitalGetList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/HospitalGetList',data:data})
export const HospitalGetList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/HospitalGetList', data: data })
}
//获取可用的医院列表
export const HospitalGetEnableList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/HospitalGetEnableList',data:data})
export const HospitalGetEnableList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/HospitalGetEnableList', data: data })
}
//获取医院基本信息
export const GetBaseInfoDetail = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/GetBaseInfoDetail',data:data})
export const GetBaseInfoDetail = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/GetBaseInfoDetail', data: data })
}
//更新套餐
export const UpdateCombo = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'admin/UpdateCombo',data:data})
export const UpdateCombo = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'admin/UpdateCombo', data: data })
}
//更新缓存
export const SaveCacheInfo = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/SaveCacheInfo',data:data})
export const SaveCacheInfo = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/SaveCacheInfo', data: data })
}
//获取套餐类型
export const ComboTypeGetList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ComboTypeGetList',data:data})
export const ComboTypeGetList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ComboTypeGetList', data: data })
}
//获取套餐适用人群
export const ComboCrowdGetList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ComboCrowdGetList',data:data})
export const ComboCrowdGetList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ComboCrowdGetList', data: data })
}
//获取套餐适用人群save
export const ComboCrowdSave = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ComboCrowdSave',data:data})
export const ComboCrowdSave = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ComboCrowdSave', data: data })
}
//获取套餐适用人群del
export const ComboCrowdDel = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ComboCrowdDel',data:data})
export const ComboCrowdDel = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ComboCrowdDel', data: data })
}
//获取订单列表
export const OrderGetList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/OrderGetList',data:data})
export const OrderGetList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/OrderGetList', data: data })
}
//获取订单详情
export const OrderGetDetail = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/OrderGetDetail',data:data})
export const OrderGetDetail = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/OrderGetDetail', data: data })
}
//保存订单信息
export const OrderSave = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/OrderSave',data:data})
export const OrderSave = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/OrderSave', data: data })
}
//获取问答列表
export const QuestionGetList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/QuestionGetList',data:data})
export const QuestionGetList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/QuestionGetList', data: data })
}
//保存题目
export const QuestionSave = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/QuestionSave',data:data})
export const QuestionSave = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/QuestionSave', data: data })
}
//获取题目详情
export const QuestionGetDetail = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/QuestionGetDetail',data:data})
export const QuestionGetDetail = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/QuestionGetDetail', data: data })
}
//删除题目
export const QuestionDel = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/QuestionDel',data:data})
export const QuestionDel = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/QuestionDel', data: data })
}
//获取文章列表
export const ArticleGetList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ArticleGetList',data:data})
export const ArticleGetList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ArticleGetList', data: data })
}
//保存文章
export const ArticleSave = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ArticleSave',data:data})
export const ArticleSave = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ArticleSave', data: data })
}
//文章详情
export const ArticleGetDetail = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ArticleGetDetail',data:data})
export const ArticleGetDetail = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ArticleGetDetail', data: data })
}
//删除文章
export const ArticleGetDel = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ArticleGetDel',data:data})
export const ArticleGetDel = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ArticleGetDel', data: data })
}
// 问卷调查
export const QuestionCreateAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + 'v1/admin/question/create', data: data})
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/question/create', data: data })
}
export const QuestionUpdateAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + 'v1/admin/question/update', data: data})
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/question/update', data: data })
}
export const QuestionDeleteAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + 'v1/admin/question/delete', data: data})
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/question/delete', data: data })
}
export const QuestionListAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + `v1/admin/question/list?page=${data.page}`, data: data})
return axios({
url: import.meta.env.VITE_APP_API + `v1/admin/question/list?page=${data.page}`,
data: data
})
}
export const QuestionQuestionCreateAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + 'v1/admin/questionQuestion/create', data: data})
return axios({
url: import.meta.env.VITE_APP_API + 'v1/admin/questionQuestion/create',
data: data
})
}
export const QuestionQuestionUpdateAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + 'v1/admin/questionQuestion/update', data: data})
return axios({
url: import.meta.env.VITE_APP_API + 'v1/admin/questionQuestion/update',
data: data
})
}
export const QuestionQuestionDeleteAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + 'v1/admin/questionQuestion/delete', data: data})
return axios({
url: import.meta.env.VITE_APP_API + 'v1/admin/questionQuestion/delete',
data: data
})
}
export const QuestionQuestionListAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + `v1/admin/questionQuestion/list?page=${data.page}`, data: data})
return axios({
url: import.meta.env.VITE_APP_API + `v1/admin/questionQuestion/list?page=${data.page}`,
data: data
})
}
// 题目列表[全部]
export const QuestionQuestionSelectAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + `v1/admin/questionQuestion/select`, data: data})
return axios({
url: import.meta.env.VITE_APP_API + `v1/admin/questionQuestion/select`,
data: data
})
}
export const QuestionItemCreateAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + 'v1/admin/questionItem/create', data: data})
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/questionItem/create', data: data })
}
export const QuestionItemUpdateAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + 'v1/admin/questionItem/update', data: data})
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/questionItem/update', data: data })
}
export const QuestionItemDeleteAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + 'v1/admin/questionItem/delete', data: data})
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/questionItem/delete', data: data })
}
export const QuestionItemListAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + `v1/admin/questionItem/list?page=${data.page}`, data: data})
return axios({
url: import.meta.env.VITE_APP_API + `v1/admin/questionItem/list?page=${data.page}`,
data: data
})
}
// 问卷调查 获取 检测项目列表
export const QuestionItemItemAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + `v1/admin/questionItem/item`, data: data})
return axios({ url: import.meta.env.VITE_APP_API + `v1/admin/questionItem/item`, data: data })
}
// 问卷调查 获取 套餐列表
// 问卷调查 获取 套餐列表
export const QuestionItemComboAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + `v1/admin/questionItem/combo`, data: data})
return axios({ url: import.meta.env.VITE_APP_API + `v1/admin/questionItem/combo`, data: data })
}
// 项目列表[全部]
export const QuestionItemSelectAction = (data = {}) => {
return axios({url: import.meta.env.VITE_APP_API + `v1/admin/questionItem/select`, data: data})
return axios({ url: import.meta.env.VITE_APP_API + `v1/admin/questionItem/select`, data: data })
}
export const QuestionListCreateAction = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/questionList/create', data: data })
}
export const QuestionListUpdateAction = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/questionList/update', data: data })
}
export const QuestionListDeleteAction = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/questionList/delete', data: data })
}
export const QuestionListListAction = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + `v1/admin/questionList/list`, data: data })
}
export const QuestionSelectAction = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + `v1/admin/question/select`, data: data })
}

@ -190,6 +190,13 @@ const router = createRouter({
meta: {
title: '问卷项目'
}
},{
path: '/Question/QuestionList',
name: 'QuestionList',
component: () => import('../views/Question/QuestionList.vue'),
meta: {
title: '健康问卷'
}
},{
path: '/comboMngr/crowd',
name: 'ComboMngrCrowd',

@ -29,7 +29,7 @@ onBeforeRouteUpdate((to) => {
const item_list = ref([])
const QuestionItemItem = async () => {
const response = await QuestionItemItemAction({})
if (response.status) {
if (response.status !== 'no') {
item_list.value = response.data.list.map((item) => {
return {
...item,
@ -43,7 +43,7 @@ const QuestionItemItem = async () => {
const question_list = ref([])
const QuestionQuestionSelect = async () => {
const response = await QuestionQuestionSelectAction({})
if (response.status) {
if (response.status !== 'no') {
question_list.value = response.data.list
} else {
ElMessage.error(response.msg)
@ -53,7 +53,7 @@ const table_list = ref([])
const last_page = ref(0)
const QuestionList = async () => {
const response = await QuestionListAction(page_options.value)
if (response.status) {
if (response.status !== 'no') {
table_list.value = response.data.list.data.map((item) => {
return {
...item,
@ -115,7 +115,7 @@ const editDoneClick = async () => {
items: JSON.stringify(edit_data.value.items),
questions: JSON.stringify(edit_data.value.questions),
})
if (response.status) {
if (response.status !== 'no') {
edit_show.value = false
await QuestionList()
} else {
@ -125,7 +125,7 @@ const editDoneClick = async () => {
const QuestionDelete = async (id) => {
const response = await QuestionDeleteAction({id})
if (response.status) {
if (response.status !== 'no') {
await QuestionList()
} else {
ElMessage.error(response.msg)

@ -27,7 +27,7 @@ onBeforeRouteUpdate((to) => {
const combo_list = ref([])
const QuestionItemCombo = async () => {
const response = await QuestionItemComboAction({})
if (response.status) {
if (response.status !== 'no') {
combo_list.value = response.data.list
} else {
ElMessage.error(response.msg)
@ -37,7 +37,7 @@ const table_list = ref([])
const last_page = ref(0)
const QuestionItemList = async () => {
const response = await QuestionItemListAction(page_options.value)
if (response.status) {
if (response.status !== 'no') {
table_list.value = response.data.list.data
last_page.value = response.data.list.last_page
} else {
@ -82,7 +82,7 @@ const editDoneClick = async () => {
const response = await $func({
...edit_data.value
})
if (response.status) {
if (response.status !== 'no') {
edit_show.value = false
await QuestionItemList()
} else {
@ -92,7 +92,7 @@ const editDoneClick = async () => {
const QuestionItemDelete = async (id) => {
const response = await QuestionItemDeleteAction({ id })
if (response.status) {
if (response.status !== 'no') {
await QuestionItemList()
} else {
ElMessage.error(response.msg)

@ -0,0 +1,226 @@
<script setup>
/**
* name
* usersa0ChunLuyu
* date2024年10月12日 16:29:26
*/
import { ref, onMounted } from 'vue'
import $router from '@/router'
import { onBeforeRouteUpdate } from 'vue-router'
import { ElMessage, ElMessageBox } from 'element-plus'
import {
UpFileUrl,
QuestionListCreateAction,
QuestionListUpdateAction,
QuestionListDeleteAction,
QuestionListListAction,
QuestionSelectAction
} from '@/api/api.js'
const default_page_options = {
search: ''
}
const page_options = ref(JSON.parse(JSON.stringify(default_page_options)))
onBeforeRouteUpdate((to) => {
routerChange(to.query)
})
const question_list = ref([])
const QuestionSelect = async () => {
const response = await QuestionSelectAction({})
if (response.status !== 'no') {
question_list.value = response.data.list
} else {
ElMessage.error(response.msg)
}
}
const table_list = ref([])
const QuestionListList = async () => {
const response = await QuestionListListAction(page_options.value)
if (response.status !== 'no') {
table_list.value = response.data.list
} else {
ElMessage.error(response.msg)
}
}
const routerChange = (query) => {
page_options.value = {
search: query.search || default_page_options.search
}
QuestionListList()
}
const searchClick = (page = 1) => {
page_options.value.page = page
$router.push({
query: JSON.parse(JSON.stringify(page_options.value))
})
}
const edit_data_default = {
id: 0,
name: '',
desc: '',
icon: '',
order: '0',
question: null
}
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))
if (!!edit_data.value.icon) {
logo.value = JSON.parse(JSON.stringify(BaseUrl.value + edit_data.value.icon))
} else {
logo.value = ''
}
edit_show.value = true
}
const editDoneClick = async () => {
const $func = edit_data.value.id !== 0 ? QuestionListUpdateAction : QuestionListCreateAction
const response = await $func({
...edit_data.value
})
if (response.status !== 'no') {
edit_show.value = false
await QuestionListList()
} else {
ElMessage.error(response.msg)
}
}
const QuestionListDelete = async (id) => {
const response = await QuestionListDeleteAction({ id })
if (response.status !== 'no') {
await QuestionListList()
} else {
ElMessage.error(response.msg)
}
}
const deleteClick = (id) => {
ElMessageBox.confirm('是否确认删除该项目?', '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
QuestionListDelete(id)
})
.catch(() => {})
}
let upfileurl = UpFileUrl()
let headerObj = {
Authorization: 'Bearer ' + sessionStorage.getItem('token')
}
let logo = ref('')
let BaseUrl = ref(import.meta.env.VITE_APP_FILE)
const upLoadSuccess = (res) => {
logo.value = BaseUrl.value + res.data
edit_data.value.icon = res.data
}
onMounted(() => {
routerChange($router.currentRoute.value.query)
QuestionSelect()
})
</script>
<template>
<div>
<el-dialog v-model="edit_show" :title="`${!!edit_data.id ? '编辑' : '新建'}`">
<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-input v-model="edit_data.desc" placeholder="请输入说明"></el-input>
</el-form-item>
<el-form-item label="图标">
<el-upload
class="avatar-uploader"
:action="upfileurl"
:headers="headerObj"
:show-file-list="false"
:on-success="upLoadSuccess"
>
<img v-if="logo" :src="logo" class="avatar" style="width: 60px" />
<el-icon v-else class="avatar-uploader-icon">
<Plus />
</el-icon>
</el-upload>
</el-form-item>
<el-form-item label="关联问卷">
<el-select v-model="edit_data.question" placeholder="请选择关联问卷">
<el-option
v-for="(i, k) in question_list"
:key="k"
:label="i.name"
:value="i.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="排序">
<el-input v-model="edit_data.order" placeholder="请输入项目说明"></el-input>
</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>
<div class="head">
<div class="head">
<el-row>
<el-form-item>
<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="desc" label="说明" width="200" />
<el-table-column label="图标" show-overflow-tooltip>
<template #default="scope">
<img :src="BaseUrl + scope.row.icon" class="avatar" style="width: 60px" />
</template>
</el-table-column>
<el-table-column prop="order" label="排序" width="200" />
<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>
</template>
<style>
.popper_class_wrapper {
width: 300px;
}
</style>
<style scoped></style>

@ -4,10 +4,10 @@
* usersa0ChunLuyu
* date2024年10月12日 16:29:26
*/
import {ref, onMounted, nextTick} from 'vue';
import { ref, onMounted, nextTick } from 'vue'
import $router from '@/router'
import {onBeforeRouteUpdate} from "vue-router";
import {ElMessage, ElMessageBox} from 'element-plus'
import { onBeforeRouteUpdate } from 'vue-router'
import { ElMessage, ElMessageBox } from 'element-plus'
import {
QuestionQuestionSelectAction,
QuestionItemSelectAction,
@ -19,7 +19,7 @@ import {
const default_page_options = {
search: '',
page: 1,
page: 1
}
const page_options = ref(JSON.parse(JSON.stringify(default_page_options)))
onBeforeRouteUpdate((to) => {
@ -29,7 +29,7 @@ const table_list = ref([])
const last_page = ref(0)
const QuestionQuestionList = async () => {
const response = await QuestionQuestionListAction(page_options.value)
if (response.status) {
if (response.status !== 'no') {
table_list.value = response.data.list.data.map((item) => {
return {
...item,
@ -45,7 +45,7 @@ const QuestionQuestionList = async () => {
const routerChange = (query) => {
page_options.value = {
search: query.search || default_page_options.search,
page: Number(query.page) || default_page_options.page,
page: Number(query.page) || default_page_options.page
}
QuestionQuestionList()
}
@ -58,9 +58,9 @@ const searchClick = (page = 1) => {
}
const select_option = {
value: [
{content: 'A. ', type: 'items', items: [], questions: []},
{content: 'B. ', type: 'items', items: [], questions: []},
{content: 'C. ', type: 'items', items: [], questions: []},
{ content: 'A. ', type: 'items', items: [], questions: [] },
{ content: 'B. ', type: 'items', items: [], questions: [] },
{ content: 'C. ', type: 'items', items: [], questions: [] }
]
}
const input_option = {
@ -73,8 +73,8 @@ const edit_data_default = {
type: 'input',
option: {
input: JSON.parse(JSON.stringify(input_option)),
select: JSON.parse(JSON.stringify(select_option)),
},
select: JSON.parse(JSON.stringify(select_option))
}
}
const edit_data = ref(JSON.parse(JSON.stringify(edit_data_default)))
const edit_show = ref(false)
@ -86,12 +86,13 @@ const updateClick = (row) => {
edit_show.value = true
}
const editDoneClick = async () => {
const $func = edit_data.value.id !== 0 ? QuestionQuestionUpdateAction : QuestionQuestionCreateAction
const $func =
edit_data.value.id !== 0 ? QuestionQuestionUpdateAction : QuestionQuestionCreateAction
const response = await $func({
...edit_data.value,
option: JSON.stringify(edit_data.value.option),
option: JSON.stringify(edit_data.value.option)
})
if (response.status) {
if (response.status !== 'no') {
edit_show.value = false
await QuestionQuestionList()
} else {
@ -100,8 +101,8 @@ const editDoneClick = async () => {
}
const QuestionQuestionDelete = async (id) => {
const response = await QuestionQuestionDeleteAction({id})
if (response.status) {
const response = await QuestionQuestionDeleteAction({ id })
if (response.status !== 'no') {
await QuestionQuestionList()
} else {
ElMessage.error(response.msg)
@ -109,18 +110,15 @@ const QuestionQuestionDelete = async (id) => {
}
const deleteClick = (id) => {
ElMessageBox.confirm(
'是否确认删除该题目?',
'提示',
{
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
}
).then(() => {
QuestionQuestionDelete(id)
}).catch(() => {
ElMessageBox.confirm('是否确认删除该题目?', '提示', {
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
QuestionQuestionDelete(id)
})
.catch(() => {})
}
const edit_item_data = ref({
active: 0,
@ -130,7 +128,7 @@ const edit_item_show = ref(false)
const question_list = ref([])
const QuestionQuestionSelect = async () => {
const response = await QuestionQuestionSelectAction()
if (response.status) {
if (response.status !== 'no') {
question_list.value = response.data.list
} else {
ElMessage.error(response.msg)
@ -151,7 +149,9 @@ const editItemClick = async (index) => {
}
const editItemDoneClick = () => {
const type = edit_data.value.option.select.value[edit_item_data.value.active].type
edit_data.value.option.select.value[edit_item_data.value.active][type] = JSON.parse(JSON.stringify(edit_item_data.value.items))
edit_data.value.option.select.value[edit_item_data.value.active][type] = JSON.parse(
JSON.stringify(edit_item_data.value.items)
)
edit_item_show.value = false
}
const filterMethod = (query, item) => {
@ -165,7 +165,7 @@ const filterMethod = (query, item) => {
const item_list = ref([])
const QuestionItemSelect = async () => {
const response = await QuestionItemSelectAction()
if (response.status) {
if (response.status !== 'no') {
item_list.value = response.data.list
} else {
ElMessage.error(response.msg)
@ -174,7 +174,9 @@ const QuestionItemSelect = async () => {
const moveQuestionClick = (index, type) => {
if (edit_data.value.option.select.value.length - 1 >= index + type) {
const question = edit_data.value.option.select.value[index]
edit_data.value.option.select.value[index] = JSON.parse(JSON.stringify(edit_data.value.option.select.value[index + type]))
edit_data.value.option.select.value[index] = JSON.parse(
JSON.stringify(edit_data.value.option.select.value[index + type])
)
edit_data.value.option.select.value[index + type] = JSON.parse(JSON.stringify(question))
}
}
@ -182,7 +184,7 @@ const delQuestionClick = (index) => {
edit_data.value.option.select.value.splice(index, 1)
}
const addQuestionClick = () => {
edit_data.value.option.select.value.push({content: '', type: 'items', items: [], questions: []})
edit_data.value.option.select.value.push({ content: '', type: 'items', items: [], questions: [] })
}
const question_type_map = {
select: '选择题',
@ -195,19 +197,34 @@ onMounted(() => {
</script>
<template>
<div>
<el-dialog v-model="edit_item_show" title="关联管理" width="610px"
:close-on-click-modal="false"
:close-on-press-escape="false"
:show-close="false">
<el-dialog
v-model="edit_item_show"
title="关联管理"
width="610px"
:close-on-click-modal="false"
:close-on-press-escape="false"
:show-close="false"
>
<div>
<el-transfer
:titles="['可选', '已选']"
:props="{key: 'id', label: edit_data.option.select.value[edit_item_data.active].type === 'items' ? 'name' : 'question'}"
v-model="edit_item_data.items"
filterable
:filter-method="filterMethod"
filter-placeholder="搜索"
:data="edit_data.option.select.value[edit_item_data.active].type === 'items' ? item_list : question_list"
v-if="!!edit_item_show"
:titles="['可选', '已选']"
:props="{
key: 'id',
label:
edit_data.option.select.value[edit_item_data.active].type === 'items'
? 'name'
: 'question'
}"
v-model="edit_item_data.items"
filterable
:filter-method="filterMethod"
filter-placeholder="搜索"
:data="
edit_data.option.select.value[edit_item_data.active].type === 'items'
? item_list
: question_list
"
/>
</div>
<template #footer>
@ -233,10 +250,16 @@ onMounted(() => {
<el-form-item label="题目配置">
<div>
<div class="select_item_wrapper">
<el-input class="select_input_wrapper" v-model="edit_data.option.input.value"
placeholder="请输入默认值"></el-input>
<el-input class="select_input_wrapper" v-model="edit_data.option.input.placeholder"
placeholder="请输入占位符"></el-input>
<el-input
class="select_input_wrapper"
v-model="edit_data.option.input.value"
placeholder="请输入默认值"
></el-input>
<el-input
class="select_input_wrapper"
v-model="edit_data.option.input.placeholder"
placeholder="请输入占位符"
></el-input>
</div>
</div>
</el-form-item>
@ -244,33 +267,62 @@ onMounted(() => {
<template v-else-if="edit_data.type === 'select'">
<el-form-item label="题目配置">
<div>
<div class="select_item_wrapper" v-for="(_,k) in edit_data.option.select.value" :key="k">
<el-input class="select_input_wrapper" v-model="edit_data.option.select.value[k].content"
placeholder="请输入"></el-input>
<el-select class="select_select_wrapper" v-model="edit_data.option.select.value[k].type"
placeholder="请选择题目类型">
<div
class="select_item_wrapper"
v-for="(_, k) in edit_data.option.select.value"
:key="k"
>
<el-input
class="select_input_wrapper"
v-model="edit_data.option.select.value[k].content"
placeholder="请输入"
></el-input>
<el-select
class="select_select_wrapper"
v-model="edit_data.option.select.value[k].type"
placeholder="请选择题目类型"
>
<el-option label="项目" value="items"></el-option>
<el-option label="题目" value="questions"></el-option>
</el-select>
<span style="margin-right: 10px;">{{
<span style="margin-right: 10px"
>{{
edit_data.option.select.value[k].type === 'items'
? edit_data.option.select.value[k].items.length
: edit_data.option.select.value[k].questions.length
}}{{ edit_data.option.select.value[k].type === 'items' ? '项目' : '题目' }}</span>
? edit_data.option.select.value[k].items.length
: edit_data.option.select.value[k].questions.length
}}{{
edit_data.option.select.value[k].type === 'items' ? '项目' : '题目'
}}</span
>
<el-button type="primary" size="small" @click="editItemClick(k)">
编辑{{ edit_data.option.select.value[k].type === 'items' ? '项目' : '题目' }}
</el-button>
<el-button :disabled="k===0" type="primary" size="small" @click="moveQuestionClick(k, -1)">
<el-button
:disabled="k === 0"
type="primary"
size="small"
@click="moveQuestionClick(k, -1)"
>
</el-button>
<el-button :disabled="k===edit_data.option.select.value.length - 1" type="primary" size="small"
@click="moveQuestionClick(k, 1)">
<el-button
:disabled="k === edit_data.option.select.value.length - 1"
type="primary"
size="small"
@click="moveQuestionClick(k, 1)"
>
</el-button>
<el-button :disabled="edit_data.option.select.value.length === 1" type="primary" size="small"
@click="delQuestionClick(k)">X
<el-button
:disabled="edit_data.option.select.value.length === 1"
type="primary"
size="small"
@click="delQuestionClick(k)"
>X
</el-button>
</div>
<div>
<el-button type="primary" size="small" @click="addQuestionClick()"></el-button>
<el-button type="primary" size="small" @click="addQuestionClick()"
>添加选项</el-button
>
</div>
</div>
</el-form-item>
@ -278,10 +330,10 @@ onMounted(() => {
</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>
<span class="dialog-footer">
<el-button @click="edit_show = false">取消</el-button>
<el-button type="primary" @click="editDoneClick()"></el-button>
</span>
</template>
</el-dialog>
@ -289,18 +341,27 @@ onMounted(() => {
<div class="head">
<el-row>
<el-form-item>
<el-input v-model="page_options.search" placeholder="搜索题目"/>
<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-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="{
<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="question" label="题目" width="200" show-overflow-tooltip/>
}"
>
<el-table-column prop="id" label="ID" width="100" />
<el-table-column prop="question" label="题目" width="200" show-overflow-tooltip />
<el-table-column label="类型" width="100">
<template #default="scope">
{{ question_type_map[scope.row.type] }}
@ -309,20 +370,23 @@ onMounted(() => {
<el-table-column label="题目配置">
<template #default="scope">
<div v-if="scope.row.type === 'input'" class="select_item_wrapper">
<span class="title_wrapper">占位符</span><span
style="margin: 0 10px;">{{ scope.row.option.input.placeholder }}</span>
<span v-if="!!scope.row.option.input.value" class="title_wrapper">默认值:</span><span style="margin: 0 10px;">{{
scope.row.option.input.value
}}</span>
<span class="title_wrapper">占位符</span
><span style="margin: 0 10px">{{ scope.row.option.input.placeholder }}</span>
<span v-if="!!scope.row.option.input.value" class="title_wrapper"></span
><span style="margin: 0 10px">{{ scope.row.option.input.value }}</span>
</div>
<div v-else-if="scope.row.type === 'select'">
<div class="select_item_wrapper" v-for="(i,k) in scope.row.option.select.value" :key="k">
<span style="margin-right: 10px;width: 400px;">{{ i.content }}</span>
<div
class="select_item_wrapper"
v-for="(i, k) in scope.row.option.select.value"
:key="k"
>
<span style="margin-right: 10px; width: 400px">{{ i.content }}</span>
<span class="title_wrapper">带出</span>
<span>{{
scope.row.option.select.value[k].type === 'items' ? '项目' : '题目'
}}</span>
<span style="margin: 0 5px;">{{ scope.row.option.select.value[k][scope.row.option.select.value[k].type].length }}</span>
<span>{{ scope.row.option.select.value[k].type === 'items' ? '项目' : '题目' }}</span>
<span style="margin: 0 5px">{{
scope.row.option.select.value[k][scope.row.option.select.value[k].type].length
}}</span>
<span></span>
</div>
</div>
@ -337,8 +401,15 @@ onMounted(() => {
</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"/>
<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>

Loading…
Cancel
Save